假如我是在通常情况下那里是在many2many关系带来额外的字段:
class Person(models.Model):
name = models.CharField(max_length=128)
class Group(models.Model):
name = models.CharField(max_length=128)
members = models.ManyToManyField(Person, through='Membership')
class Membership(models.Model):
person = models.ForeignKey(Person)
group = models.ForeignKey(Group)
date_joined = models.DateField()
invite_reason = models.CharField(max_length=64)
# other models which are unrelated to the ones above..
class Trip(models.Model):
placeVisited = models.ForeignKey(Place)
visitor = models.ForeignKey(Person)
pleasuretrip = models.Boolean()
class Place(models.Model):
name = models.CharField(max_length=128)
我想在得到通过内联显示的会员形式加入一些额外的字段 。 这些领域基本上都是一个快捷方式到另一种模式(旅行)的实例。 旅行可以有自己的管理意见,但需要这些快捷方式,因为当我的项目合作伙伴在系统中输入“会员”的数据,他们正好也有“跳闸”信息方便(还因为一些成员的信息都可以只被复制至行程等等)。
因此,所有我想有在籍内嵌了两个附加字段- placeVisited和pleasuretrip -这与Person实例在一起会让我实例在后台旅行模式 ...
我发现我可以很容易地通过定义自己的表单中添加额外的字段的内嵌视图。 但是,一旦数据已经输入,如何以及何时参考,以便他们执行我需要做保存操作?
class MyForm(forms.ModelForm):
place = forms.ModelChoiceField(required=False, queryset=Place.objects.all(), label="place",)
pleasuretrip = forms.BooleanField(required=False, label="...")
class MembershipInline(admin.TabularInline):
model = Membership
form = MyForm
def save_model(self, request, obj, form, change):
place = form.place
pleasuretrip = form.pleasuretrip
person = form.person
....
# now I can create Trip instances with those data
....
obj.save()
class GroupAdmin(admin.ModelAdmin):
model = Group
....
inlines = (MembershipInline,)
这似乎并不工作...我也有点被save_formset方法不解......也许是一个我应该使用? 提前的帮助非常感谢 !!!!