使用主键的Django createview [英] Django createview using primary key

查看:211
本文介绍了使用主键的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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆