2011-09-20 83 views
0

我正在与django一起创建三个表来定义商店,它是商品列表和价目表。在'price_list'模型中,我创建了外键链接到其他两个表,我以后使用它们来使用独特的一起选项创建一个复杂的主键。这一切都验证没有错误,但是当我尝试通过管理界面更改'price_list'时,我收到了错误,如上面在本文的标题中所述。编辑其他两个模型继续没有小故障。 据我了解,该错误是说,外键链接到企业表的主键是空的。如何自动生成该值?IntegrityError at/admin/app/price_list/add /(1048,“Column'business_id_id'不能为空”)

请帮

models.py

from django.db import models 

class Businesses(models.Model): 
    business_name = models.CharField(max_length=50, unique=True) 
    telephone_number = models.CharField(max_length=15) 
    where = models.ManyToManyField('Location', verbose_name='where?') 

    def __unicode__(self): 
     return self.business_name 

    class Meta: 
     ordering = ['business_name'] 


class Location(models.Model): 
    located_at = models.CharField(max_length=30) 
    city = models.CharField(max_length=30) 
    country = models.CharField(max_length=30) 

    def __unicode__(self): 
     return u'%s' % (self.located_at) 

    class Meta: 
     ordering = ['located_at'] 


class Item_list(models.Model): 
    item_name = models.CharField(max_length=50, unique=True) 

    def __unicode__(self): 
     return self.item_name 

    class Meta: 
     ordering = ['item_name'] 


class Price_list(models.Model): 
    price_list_id = models.AutoField(primary_key=True) 
    price = models.IntegerField(max_length=50) 
    business_id = models.ForeignKey(Businesses, related_name='businessID') 
    item_id = models.ForeignKey(Item_list, related_name='ItemID') 
    business_name = models.ForeignKey(Businesses, to_field='business_name', related_name='businessName') 
    item_name = models.ForeignKey(Item_list, to_field='item_name', related_name='itemName') 

    def __unicode__(self): 
     return u'%s' % self.price 

    class Meta: 
     ordering = ['price'] 
     unique_together = (("price_list_id", "business_id", "item_id"),) 

admin.py

from django.contrib import admin 
from biaSearch.app.models import * 

class BusinessAdmin(admin.ModelAdmin): 
    list_display = ('business_name', 'telephone_number') 
    search_field = ('business_name') 
    filter_horizontal = ('where',) 

class LocationAdmin(admin.ModelAdmin): 
    list_display = ('located_at', 'city', 'country') 
    search_field = ('located_at') 
    list_filter = ('located_at', 'city') 

class Item_listAdmin(admin.ModelAdmin): 
    list_display = ('item_name',) 

class Price_listAdmin(admin.ModelAdmin): 
    list_display = ('price',) 
    fields = ('price', 'business_name', 'item_name') 


admin.site.register(Businesses, BusinessAdmin) 
admin.site.register(Location, LocationAdmin) 
admin.site.register(Item_list, Item_listAdmin) 
admin.site.register(Price_list, Price_listAdmin) 

回答

0

我怀疑你是在“外键定义缺少资本2 businessID“在Price_List上。

我不确定,但我认为整个“related_name ='businessID'”参数是不必要的,因为您要创建一个外键到Businesses表的主键。

试试吧 - 它可能会工作!

相关问题