سرمایه گذاری متفاوت در سال نو 🍎🌱 ۳۵٪ تخفیف نوروزی ➕ حضور رایگان در مسترمایند نخبگان صنعت نرم‌افزار 💻✅
۰ ثانیه
۰ دقیقه
۰ ساعت
۳ alireza-fa
ذخیره اطلاعات در دیتابیس مانند جنگو
جامعه پایتون (وب) ایجاد شده در ۰۱ بهمن ۱۴۰۰

سلام وقت شما بخیر

برای من یک سوالی پیش اومده و نمیدونم دقیقا باید چجوری پیاده سازیش کنیم.

مثلا ما میخوایم پنل ادمین خودمون رو پیاده سازی بکنیم. بعد یه مدل product داریم و یه مدل برای ذخیره کردن عکس‌های محصول

    class ProductImage(models.Model):
    product = models.ForeignKey(Product, on_delete=models.CASCADE, related_name='images')
    name = models.CharField(max_length=64)
    image = models.ImageField(upload_to='products/')
    def __str__(self):
        return self.name

حالا سوال اینجاس ما نمیدونیم دقیقا هر محصول قراره چقدر عکس داشته باشه. پس باید عکس‌ها رو به چه شکلی ذخیره کنیم!

دقیقا یه چیزی شبیه به کاری که جنگو با استفاده از inline میکنه.

سلام وقت بخیر

درواقع میتونیم برای این کار یه تیبل جدا برای image هامون داشته باشیم :

class Picture(models.Model):
    picture = models.ImageField(upload_to='shop/static/shop/images/')  
    def __str__(self):
        return self.picture.url
class Product(models.Model):
    name = models.CharField(max_length=200)
    picture = models.ForeignKey(Picture, on_delete=models.CASCADE)
    def __str__(self):
        return self.name

in admins:

class PictureInline(modeladmin.StackedInline):
    model = Picture
class ProductAdmin(admin.ModelAdmin):
    inlines = [PictureInline]
admin.site.register(Product, ProductAdmin)
پوریا شفیعی ۰۱ بهمن ۱۴۰۰، ۱۷:۰۶

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

در اینجا این مشکلات پیش میاد :‌

چطور من اون تصاویری که تعدادش نامشخص هستش رو ذخیره. کنم مثلا کاربر میتونه یدونه یا شاید ده تا اضافه کنه

alireza-fa ۰۱ بهمن ۱۴۰۰، ۱۹:۱۵

سلام وقتتون بخیر

این تاپیک رو مطالعه کنید احتمالا مشکلتون رو حل خواهد کرد لینک

بهترین پاسخ
پوریا شفیعی ۰۲ بهمن ۱۴۰۰، ۲۰:۰۵