我昨天开始研究Django,但是根据我之前创建的对象创建多对一关系时遇到了一些麻烦。
# -*- coding: utf-8 -*-
from django.db import models
class Item(models.Model):
code = models.AutoField(primary_key=True)
name = models.CharField(max_length=150, unique=True)
class Meta:
ordering = ('name', 'code')
def __unicode__(self):
return self.name
class Product(models.Model):
code = models.AutoField(primary_key=True)
name = models.CharField(max_length=150, unique=True)
price = models.DecimalField(max_digits=5, decimal_places=2)
photo = models.ImageField(null=True, blank=True, upload_to='/img/products')
items = models.ForeignKey('Item')
class Meta:
ordering = ('name', 'code')
def __unicode__(self):
return self.name
# -*- coding: utf-8 -*-
from django.contrib import admin
from Cadastro.models import Item, Product
class ItemAdmin(admin.ModelAdmin):
model = Item
list_display = ['code', 'name']
list_filter = []
search_fields = ['name', 'code']
save_on_top = True
class ProductAdmin(admin.ModelAdmin):
model = Product
list_display = ['name', 'price']
list_filter = []
search_fields = ['name']
save_on_top = True
admin.site.register(Item, ItemAdmin)
admin.site.register(Product, ProductAdmin)
我的问题在这里:
items = models.ForeignKey('Item')
我想首先创建各种 Item 对象。
之后,当我创建商品时,我希望看到所有商品的列表,并选择许多商品作为的一部分产品
答案 0 :(得分:2)
你的关系走错了路。如果Product
可以包含多个Item
,请从ForeignKey
到Item
生成Product
。对于ForeignKey
上的Product
,您说每个产品只有一个Item
,但每个Item
可以属于多个Product
。< / p>
文档有更多细节和示例: https://docs.djangoproject.com/en/1.7/topics/db/examples/many_to_one/