2

少し前のことですが、Djangoと一緒に仕事をしています。次の問題が発生しました。

2つのモデルがあります

class Product(models.Model):
    productID       = models.AutoField(primary_key=True)
    brandID         = models.ForeignKey(Brand, verbose_name=u'Бренд')
    categoryID      = models.ForeignKey(Category, verbose_name=u'Категория')
    productPhotos   = models.ManyToManyField("ProductPhoto", verbose_name = "Фотографии товара", related_name="photos", blank=True)

class ProductPhoto(models.Model):
    productPhotoID      = models.AutoField(primary_key=True)
    productID           = models.ForeignKey(Product)
    imageFile           = models.FileField(u'Путь к изображение', upload_to=makeUploadPath)
    dateModified        = models.DateField(auto_now=True)

管理者は、次のTabularInlineを使用してください

class ProductPhotoInline(admin.TabularInline):
    model = ProductPhoto
    verbose_name = u"Фото"
    verbose_name_plural = u"Фотографии"

class ProductAdmin(admin.ModelAdmin):
    list_display = ('title')
    search_fields = ...
    fieldsets = ...
    )
    inlines = [ ProductPhotoInline, ]

テーブルProdcutPhotoproductIdフィールドに製品を追加するときの問題が入力され、テーブルProductsproductPhotosのフィールドが空になります。両方のフィールドに入力するための最善の方法。

4

1 に答える 1

0

productPhotosManyToManyフィールドを削除する必要があります。これは冗長です。各写真が1つの製品にのみ添付されている場合、必要なのはproductIDForeignKeyだけです。

製品インスタンスから写真にアクセスするには、次のように使用できますproductphoto_set

product = Product.objects.get(pk=1)
photos = product.productphoto_set.all()
于 2012-07-01T21:02:11.907 に答える