使用主键的Django createview [英] Django createview using primary key
本文介绍了使用主键的Django createview的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有这样的模型:
class Appointment(models.Model):
user = models。 ForeignKey(用户)
engineer = models.ForeignKey(工程师)
first_name = models.CharField(max_length = 100)
middle_name = models.CharField(max_length = 100,blank = True)
last_name = models.CharField(max_length = 100)
age = models.IntegerField()
def __unicode __(self):
返回self.first_name
我使用这个模型创建了一个表单,我想保存它。在这里,我希望'工程师'字段作为主键在URL中传递..就像
engineer = Engineer .objects.get(pk = pk)
我该怎么做。或者我应该创建一个正常的形式,并通过get方法获得它的值,并分配给字段??
CreateView,你应该建立在示例在文档中并将其添加到 form_valid
: def form_valid(self,form):
form.instance.engineer = Engineer.objects.get(self.kwargs ['pk'])
return super(AppointmentCreate,self).form_valid (表格)
I have a model like this:
class Appointment(models.Model):
user = models.ForeignKey(User)
engineer = models.ForeignKey(Engineer)
first_name = models.CharField(max_length=100)
middle_name = models.CharField(max_length=100, blank=True)
last_name = models.CharField(max_length=100)
age = models.IntegerField()
def __unicode__(self):
return self.first_name
I have created a form using this model and I want to save it. Here I want the 'engineer' field to to be as the primary key is passed in the url.. like
engineer = Engineer.objects.get(pk=pk)
How can I do this. Or I should create a normal form and get its value via get method and assign to the field??
解决方案
Since this is a CreateView, you should build on the example in the documentation and add it in form_valid
:
def form_valid(self, form):
form.instance.engineer = Engineer.objects.get(self.kwargs['pk'])
return super(AppointmentCreate, self).form_valid(form)
这篇关于使用主键的Django createview的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文