Django使用主键创建视图

Posted

技术标签:

【中文标题】Django使用主键创建视图【英文标题】:Django createview using primary key 【发布时间】:2015-01-04 01:15:01 【问题描述】:

我有一个这样的模型:

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

我已经使用这个模型创建了一个表单,我想保存它。在这里,我希望“工程师”字段作为主键在 url 中传递.. 像

engineer = Engineer.objects.get(pk=pk) 

我该怎么做。或者我应该创建一个普通表单并通过 get 方法获取其值并分配给该字段??

【问题讨论】:

你有Engineer 型号吗? 【参考方案1】:

由于这是一个 CreateView,您应该在示例 in the documentation 的基础上进行构建,并将其添加到 form_valid

def form_valid(self, form):
    form.instance.engineer = Engineer.objects.get(pk=self.kwargs['pk'])
    return super(AppointmentCreate, self).form_valid(form)

【讨论】:

但它显示 TypeError : 'int' object is not iterable @DanielRoseman。

以上是关于Django使用主键创建视图的主要内容,如果未能解决你的问题,请参考以下文章

用主键创建视图?

sql如何创建视图?

在 Postgres 的物化视图上创建主键

在 Django 视图中将用户/帐户表添加到 Postgres

Django:查询没有主键的只读视图

如果没有主键,如何在 Django 中建模数据库视图?