Django管理面板中的一对多问题
你好,我有这两个模型:
from django.db import models
class Office(models.Model):
name = models.CharField(max_length=30)
person = models.CharField(max_length=30)
phone = models.CharField(max_length=20)
fax = models.CharField(max_length=20)
address = models.CharField(max_length=100)
def __unicode__(self):
return self.name
class Province(models.Model):
numberPlate = models.IntegerField(primary_key=True)
name = models.CharField(max_length=20)
content = models.TextField()
office = models.ForeignKey(Office)
def __unicode__(self):
return self.name
我想为省份选择多个办公室,因为这是一个一对多的模型。以下是我的admin.py:
from harita.haritaapp.models import Province, Office
from django.contrib import admin
class ProvinceCreator(admin.ModelAdmin):
list_display = ['name', 'numberPlate','content','office']
class OfficeCreator(admin.ModelAdmin):
list_display = ['name','person','phone','fax','address']
admin.site.register(Province, ProvinceCreator)
admin.site.register(Office, OfficeCreator)
现在,在管理面板上创建新省份时,我只能为每个省份选择一个办公室,但我想能够选择多个。请问我该怎么做呢?
谢谢!
1 个回答
2
我不太确定我是否理解错了你的意思,但你现在的模型说“一个办公室可以关联多个省份,但每个省份只能有一个办公室”。这和你想要的结果是矛盾的。你应该使用一个多对多的字段来解决这个问题:
class Province(models.Model):
numberPlate = models.IntegerField(primary_key=True)
name = models.CharField(max_length=20)
content = models.TextField()
office = models.ManyToManyField(Office)
def __unicode__(self):
return self.name