我在Django中有两个与OneToOneField(PrinterProfile和PrinterAdress)
相关的模型。我正在尝试使用创建表单PrinterProfileForm
,但由于某种原因,它不会将PrinterAddress字段传递给表单(模板中的Django“ magic”未将其呈现)。
我应该怎么做才能PrinterProfileForm
包括我的字段PrinterAddress
(及其相关字段OneToOneField
)?
非常感谢
class PrinterProfile(TimeStampedModel):
user = models.OneToOneField(User)
phone_number = models.CharField(max_length=120, null=False, blank=False)
additional_notes = models.TextField()
delivery = models.BooleanField(default=False)
pickup = models.BooleanField(default=True)
# The main address of the profile, it will be where are located all the printers.
class PrinterAddress(TimeStampedModel):
printer_profile = models.OneToOneField(PrinterProfile)
formatted_address = models.CharField(max_length=200, null=True)
latitude = models.DecimalField(max_digits=25, decimal_places=20) # NEED TO CHECK HERE THE PRECISION NEEDED.
longitude = models.DecimalField(max_digits=25, decimal_places=20) # NEED TO CHECK HERE THE PRECISION NEEDED.
point = models.PointField(srid=4326)
def __unicode__(self, ):
return self.user.username
class PrinterProfileForm(forms.ModelForm):
class Meta:
model = PrinterProfile
exclude = ['user']
你必须为其创建第二个表单PrinterAddress
并在视图中处理这两种形式:
if all((profile_form.is_valid(), address_form.is_valid())):
profile = profile_form.save()
address = address_form.save(commit=False)
address.printer_profile = profile
address.save()
当然,在模板中,你需要在一个<form>
标签下显示两种形式:
<form action="" method="post">
{% csrf_token %}
{{ profile_form }}
{{ address_form }}
</form>
问题内容: django OneToOneField和ForeignKey有什么区别? 问题答案: 请注意,和之间存在一些差异。如《 Django权威指南》所述: 一对一 一对一的关系。从概念上讲,这与 相似,但是关系的“反向”侧将直接返回单个对象。 与“反向”关系相反,“反向”关系返回。 例 例如,如果我们有以下两个模型(下面是完整的模型代码): 模型用途 模型用途 从内部执行以下操作: One
问题内容: 所以我有我的TagStatus模型。我正在尝试为此制作一个ModelForm。但是,我的表单要求使用{{tag.name}}填充隐藏的输入。我一直在浏览文档,但不知道如何使标记字段成为隐藏的输入。也许ModelForm不是要走的路? models.py: django views.py: 模板: 我将如何通过Django ModelForm进行隐藏输入,然后通过模板进行填充? 问题答案
我的用户模型中有几个字段是choice字段,并且正在尝试找出如何将其最好地实现到Django Rest框架中。 下面是一些简化的代码来显示我正在做什么。 基本上,我要做的是让get/post/put方法使用choice字段的display值,而不是代码,类似于下面的JSON。 我该怎么做呢?上面的代码不起作用。之前,我有这样的东西用于GET,但用于post/put会给我带来错误。我正在寻找如何这样
我有这样布局的模型: 这里的场景是我永远不希望用户删除数据。相反,删除只会隐藏记录。但是,我仍然希望所有非软删除的记录都遵循唯一的键约束。基本上,我希望有尽可能多的重复的已删除记录,但只有一个唯一的未删除记录可以存在。所以我本来想包括“已删除”字段(由django安全删除库提供),但问题是Django的唯一检查因“psycopg2”而失败。完整性错误:重复的键值违反了 ['field2', 'fi
问题内容: 在Django中,我将SESSION_COOKIE_DOMAIN设置为我的域名。但是我实际上想使用两个不同的域名来运行同一站点。 在设置了SESSION_COOKIE_DOMAIN的情况下,只有命名域才允许用户登录。是否可以同时允许两个域登录? 问题答案: 如果你将会话cookie域设置为以“。”开头。字符,它将使你能够处理通配符子域并在多个子域之间共享会话cookie(登录会话)。
问题内容: 所以我试图使这种形式异步。理想情况下,我使用此表单添加单位,然后动态更新表。我不希望整个页面刷新。我对javascript不太满意,可以对发生的事情使用一些指针: 我不想发生的一些事情正在发生: 整个页面令人耳目一新 request.is_ajax()为False。 通常,我只是想了解发生了什么,但问题是,如何更改以下内容以解决上述两个问题?(如果它们是问题,那么根本就是问题。) 作为