2012-07-01 49 views
2

不久前,與Django一起工作的好日子。 遇到以下問題。django自動填充管理中的許多字段

有兩種型號

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, ] 

的問題,當你在表ProdcutPhoto產品id字段被填充添加產品,並在表中的字段產品productPhotos是空的。如何最好地填寫這兩個字段。

+0

只是好奇心。你爲什麼要編輯這個內聯?您在產品類中定義了productPhotos。在這種情況下,產品的管理界面應該可以讓您選擇現有的產品照片或添加新的產品照片。 – Jingo

回答

0

您應該移除productPhotos ManyToMany字段,這是多餘的。如果每張照片僅附加到一個產品上,那麼可以使用productID ForeignKey。

要訪問產品實例中的照片,您可以使用productphoto_set,例如,

product = Product.objects.get(pk=1) 
photos = product.productphoto_set.all()