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

کمک و پشتیبانی => برنامه‌سازی => نویسنده: سید حسین موسوی فرد در 02 خرداد 1401، 04:41 ب‌ظ

عنوان: لینک کردن یک فیلد از یک مدل به یک فیلد از مدلی دیگر در جنگو(حل شد)
ارسال شده توسط: سید حسین موسوی فرد در 02 خرداد 1401، 04:41 ب‌ظ
سلام.
نیاز دارم که یکی از فیلد ها تو یه مدل رو لینک کنم به یه فیلد دیگه تو یه مدل دیگه که بشه یادداشت رو به اشتراک گذاشت
یه راه اینه که وقتی یکی یادداشت خودشو ویرایش کرد رو یادداشت های بقیه هم بنویسه که دو تا مشکل داره. یکی این که اگه با نفر های زیادی به اشتراک گذاشته شده باشه زمان می بره تا روی همه اونا بنویسه و هم فضای بیشتری می گیره.
خود جنگو راهی نداره؟
عنوان: پاسخ : لینک کردن یک فیلد از یک مدل به یک فیلد از مدلی دیگر در جنگو
ارسال شده توسط: دانیال بهزادی در 03 خرداد 1401، 11:46 ق‌ظ
دقیق‌تر بگو می‌خوای چی کار کنی و مدل‌هایی که نوشتی رو هم بذار ببینیم چی به چیه.
عنوان: پاسخ : لینک کردن یک فیلد از یک مدل به یک فیلد از مدلی دیگر در جنگو
ارسال شده توسط: سید حسین موسوی فرد در 03 خرداد 1401، 03:14 ب‌ظ
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 داشته باشه به اون یادداشت اصلی ولی نمی دونم شاید روش قبلی بهتر باشه.
عنوان: پاسخ : لینک کردن یک فیلد از یک مدل به یک فیلد از مدلی دیگر در جنگو
ارسال شده توسط: دانیال بهزادی در 03 خرداد 1401، 03:21 ب‌ظ
به ازای هر کاربری که درخواستی رو می‌پذیره، یه مدل SharedNote بساز که یه کلید خارجیش بشه Note، اون یکیش هم بشه کاربری که باهاش هم‌رسانی شده.
عنوان: پاسخ : لینک کردن یک فیلد از یک مدل به یک فیلد از مدلی دیگر در جنگو
ارسال شده توسط: سید حسین موسوی فرد در 03 خرداد 1401، 03:31 ب‌ظ
یعنی همچین چیزی؟

class SharedNote(models.Model):
    note = models.ForeignKey(Note, on_delete=models.CASCADE)
    user = models.ForeignKey(User, on_delete=models.CASCADE)
عنوان: پاسخ : لینک کردن یک فیلد از یک مدل به یک فیلد از مدلی دیگر در جنگو
ارسال شده توسط: دانیال بهزادی در 03 خرداد 1401، 03:51 ب‌ظ
بله
عنوان: پاسخ : لینک کردن یک فیلد از یک مدل به یک فیلد از مدلی دیگر در جنگو
ارسال شده توسط: سید حسین موسوی فرد در 03 خرداد 1401، 05:02 ب‌ظ
کلیک روی دکمه تشکر. :D