انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید


توزیع گنو/لینوکس اوبونتو ۲۰ ساله شد 🎉

نویسنده موضوع: لینک کردن یک فیلد از یک مدل به یک فیلد از مدلی دیگر در جنگو(حل شد)  (دفعات بازدید: 537 بار)

0 کاربر و 3 مهمان درحال مشاهده موضوع.

آفلاین سید حسین موسوی فرد

  • Sr. Member
  • *
  • ارسال: 268
  • جنسیت : پسر
  • Debian
سلام.
نیاز دارم که یکی از فیلد ها تو یه مدل رو لینک کنم به یه فیلد دیگه تو یه مدل دیگه که بشه یادداشت رو به اشتراک گذاشت
یه راه اینه که وقتی یکی یادداشت خودشو ویرایش کرد رو یادداشت های بقیه هم بنویسه که دو تا مشکل داره. یکی این که اگه با نفر های زیادی به اشتراک گذاشته شده باشه زمان می بره تا روی همه اونا بنویسه و هم فضای بیشتری می گیره.
خود جنگو راهی نداره؟
« آخرین ویرایش: 03 خرداد 1401، 05:03 ب‌ظ توسط سید حسین موسوی فرد »
قال علی (ع): لا غِنَی کالعَقلِ، و لا فَقرَ کالجَهلِ، و لا میراثَ کالاَدَب و لا ظَهیرَ کالمُشاوَرَه

آفلاین دانیال بهزادی

  • ناظر انجمن
  • *
  • ارسال: 19722
  • جنسیت : پسر
  • Urahara Kiesuke
    • وبلاگ
دقیق‌تر بگو می‌خوای چی کار کنی و مدل‌هایی که نوشتی رو هم بذار ببینیم چی به چیه.
اگه این ارسال بهت کمک کرد، دنبال دکمهٔ تشکر نگرد. به جاش تو هم به جامعهٔ آزادت کمک کن

آفلاین سید حسین موسوی فرد

  • Sr. Member
  • *
  • ارسال: 268
  • جنسیت : پسر
  • Debian
class Note(models.Model):
    title = models.CharField(max_length=24)
    notebook = models.ForeignKey(NoteBook, on_delete=models.CASCADE, null=True)
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    noteType = models.CharField(max_length=24)
    datetime = models.DateTimeField(auto_now=True)
    content = models.TextField(blank=True)
    allowed_types = ['note', 'kanban', 'table']
    def __str__(self):
        return f"{self.user}/{self.notebook.title}/{self.title}"

class ShareRequest(models.Model):
    sender = models.ForeignKey(User, on_delete=models.CASCADE)
    reciver = models.ForeignKey(User, on_delete=models.CASCADE)
    note = models.ForeignKey(User, on_delete=models.CASCADE)
    request_time = models.DateTimeField(auto_created=True)

فرضا طرف یه یادداشت داره و می‌خواد اونو با یکی دیگه هم‌رسانی کنه پس اشتراک رو می‌زنه و نام کاربری طرف رو وارد می کنه بعد یه درخواست برای طرف میره. بعد اگه طرف قبول کنه درخواست رو یه مدل Note براش ایجاد بشه که فیلد هاش لینک بشه به فیلد های یادداشت اصلی. برای این کار تو جنگو دستوری پیدا نکردم.

البته همین الان به ذهنم رسید که وقتی درخواست قبول شد یه مدل Note ایجاد بشه که ForiegnKey داشته باشه به اون یادداشت اصلی ولی نمی دونم شاید روش قبلی بهتر باشه.
قال علی (ع): لا غِنَی کالعَقلِ، و لا فَقرَ کالجَهلِ، و لا میراثَ کالاَدَب و لا ظَهیرَ کالمُشاوَرَه

آفلاین دانیال بهزادی

  • ناظر انجمن
  • *
  • ارسال: 19722
  • جنسیت : پسر
  • Urahara Kiesuke
    • وبلاگ
به ازای هر کاربری که درخواستی رو می‌پذیره، یه مدل SharedNote بساز که یه کلید خارجیش بشه Note، اون یکیش هم بشه کاربری که باهاش هم‌رسانی شده.
اگه این ارسال بهت کمک کرد، دنبال دکمهٔ تشکر نگرد. به جاش تو هم به جامعهٔ آزادت کمک کن

آفلاین سید حسین موسوی فرد

  • Sr. Member
  • *
  • ارسال: 268
  • جنسیت : پسر
  • Debian
یعنی همچین چیزی؟

class SharedNote(models.Model):
    note = models.ForeignKey(Note, on_delete=models.CASCADE)
    user = models.ForeignKey(User, on_delete=models.CASCADE)
قال علی (ع): لا غِنَی کالعَقلِ، و لا فَقرَ کالجَهلِ، و لا میراثَ کالاَدَب و لا ظَهیرَ کالمُشاوَرَه

آفلاین دانیال بهزادی

  • ناظر انجمن
  • *
  • ارسال: 19722
  • جنسیت : پسر
  • Urahara Kiesuke
    • وبلاگ
اگه این ارسال بهت کمک کرد، دنبال دکمهٔ تشکر نگرد. به جاش تو هم به جامعهٔ آزادت کمک کن

آفلاین سید حسین موسوی فرد

  • Sr. Member
  • *
  • ارسال: 268
  • جنسیت : پسر
  • Debian
کلیک روی دکمه تشکر. :D
قال علی (ع): لا غِنَی کالعَقلِ، و لا فَقرَ کالجَهلِ، و لا میراثَ کالاَدَب و لا ظَهیرَ کالمُشاوَرَه