gpt4 book ai didi

python - 带有外键字段的 Django CreateView

转载 作者:太空宇宙 更新时间:2023-11-04 00:24:59 24 4
gpt4 key购买 nike

我想给一个人添加一个电话号码。

我的 models.py 包含:

class Person(models.Model):
first_name = models.CharField(max_length=64)
last_name = models.CharField(max_length=64)
description = models.CharField(max_length=64)

class Phone(models.Model):
CHOICES = (
('P', 'personal'),
('C', 'company')
)
person = models.ForeignKey(Person)
number = models.CharField(max_length=20, unique=True)
type = models.CharField(max_length=1, choices=CHOICES)

我的 views.py 包含:

class PersonCreate(CreateView):
model = Person
fields = ['first_name', 'last_name', 'description']

class PhoneCreate(CreateView):
model = Phone
fields = '__all__'

我的 urls.py 包含:

url(r'^(?P<pk>\d+)/$', PersonDetailView.as_view(), name = 'detail'),
url(r'^(?P<pk>\d+)/addPhone$', PhoneCreate.as_view(),
name='phone_create')

现在它是这样工作的:我正在进入 Person 详细信息 View (url:“详细信息”)。这里我有一个 Add Address 按钮,可以将我重定向到查看 (url: 'phone_create'),但我仍然必须选择人员。如何从详细 View 自动创建联系人的电话号码?

最佳答案

我找到了正确答案:

class PhoneCreate(CreateView):
model = Phone
fields = ['number', 'type']

def form_valid(self, form):
form.instance.person_id = self.kwargs.get('pk')
return super(PhoneCreate, self).form_valid(form)

关于python - 带有外键字段的 Django CreateView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47839536/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com