首页 > 解决方案 > 有没有什么方法可以在 django 中使用相同的 url 和视图来更新和创建表单数据?

问题描述

我正在创建一个表单,该表单能够在不存在的情况下创建帖子,或者在已经存在的情况下更新帖子。我想使用相同的 url 和视图来做到这一点。django 通用类视图为此使用了两个 url。虽然我能够创建一个帖子,但为了更新,我无法获取相应外键的现有数据。如果数据库中已经存在某些数据,我想更新这些现有数据。我的代码如下。

模型.py

class BookDetail(models.Model):
book = models.ForeignKey(Book,default=None,on_delete=models.CASCADE)
book_summary = models.CharField(max_length=255,null=True)
book_details = RichTextUploadingField(blank=True,null=True)
timestamps = models.DateTimeField(auto_now_add=True,auto_now=False)
updated = models.DateTimeField(auto_now_add=False,auto_now=True)

bookdetails 由书籍模型的外键组成。我想使用这些外键创建书籍详细信息。但是,如果详细信息已经创建并且用户想要更新这些详细信息,我希望它使用相同的 url 进行更新。我使用了 django 的 update_or_create 方法。但是我无法在 update_or_create 方法的默认属性中发送表单数据。如何使用相同的 url 创建和更新这些数据?

标签: pythondjangosqlitemodeldjango-views

解决方案


推荐阅读