ذخیره یک لیست در دیتابیس رابطه‌ای(django)

سلام، وقت بخیر.

توی جنگو نیاز دارم تا یک لیست رو داخل دیتابیس ذخیره کنم، این درسته که لیست رو به صورت json ذخیره کنم؟ یا اینکه باید لیست رو به بایت تبدیل کنم و اون بایت ها رو داخل باینری-فیلد ذخیره کنم؟

مثال کاری که نیاز دارم بکنم اینه که یک یوزر دارم که می‌تونه عضو چندین گروه باشه.
هر گروه هم یک تیبل توی جنگو هست.

این تیبل گروه هست، داخل همین تیبل هم یکبار user_list تعریف شده که یوزر های عضوش رو ذخیره کنم، این قطعا اشتباهه، اما چطور لیست کاربران عضو این گروه رو باید بدست بیارم؟
حدس خودم اینه که باید توی گروه کلید خارجی بزنم به ای‌دی هر یوزر، درسته؟

class Group(models.Model):
    admin = models.ForeignKey(User, on_delete=models.CASCADE)
    users_list = models.JSONField()
    image = models.ImageField()
    name = models.CharField(max_length=30)
    img = models.ImageField(default='')

اگه از postgresql استفاده میکنید، یه دیتاتایپ داره مخصوص json!
خیلی بهتر از ذخیره کردن خود json هست.
http://www.silota.com/docs/recipes/sql-postgres-json-data-types.html

2 پسندیده

حدس من اینه که شما ی جدول واسطه many to many میخواید ( اگر user میتونه توی گروه های مختلف هم عضو بشه ) یا (single to many) اگر user فقط توی ی گروه میتونه عضو بشه.

تا جایی که یادمه توی آموزش خود سایت جنگو، این مطالب توضیح داده شده

1 پسندیده

خیلی خیلی ممنونم درست می‌گین،

https://docs.djangoproject.com/en/4.0/topics/db/examples/many_to_many/

نیاز من همین نوع رابطه هست. ممنون

1 پسندیده