当前位置: 首页 > 面试题库 >

如何在CreateView中设置ForeignKey?

苏硕
2023-03-14
问题内容

我有一个模型:

class Article(models.Model):
    text = models.CharField()
    author = models.ForeignKey(User)

如何编写基于类的视图,该视图创建新的模型实例并将author外键设置为request.user


问题答案:

我通过覆盖form_valid方法解决了这个问题。下面是详细说明的样式:

class CreateArticle(CreateView):
    model = Article

    def form_valid(self, form):
        article = form.save(commit=False)
        article.author = self.request.user
        #article.save()  # This is redundant, see comments.
        return super(CreateArticle, self).form_valid(form)

但是我们可以简短地说(感谢dowjones123),在docs中提到了这种情况。

class CreateArticle(CreateView):
    model = Article

    def form_valid(self, form):
        form.instance.author = self.request.user
        return super(CreateArticle, self).form_valid(form)


 类似资料:
  • 问题内容: 我正在使用自定义的CreateView(CourseCreate)和UpdateView(CourseUpdate)保存和更新课程。保存课程后,我想采取措施。我将在新课程的讲师和用户之间建立新的多对多关系(如果尚不存在)。 因此,我想将“课程”另存为课程,然后使用“ course.faculty”创建该新关系。做到这一点的最佳地点在哪里? 我正在尝试在视图的form_valid中执行此

  • 问题内容: 我正在尝试使用JavaFX中的WebView入门,但是当尝试打开W​​ebView时,我收到以下所示的错误,我该如何解决此问题? 问题答案: 尝试运行WebView时遇到任何错误时,请确保您的VM选项包含模块javafx.web。 虚拟机选项: 在IntelliJ中,您可以通过转到IDE右上方的“编辑配置”按钮来访问VM选项。

  • 问题内容: 我已经使用数据库中的SQL数据库开发了一个窗口服务,该数据库中的记录已满,因此查询执行需要很多时间,而默认命令超时是30S,但我想将其增加到120S。 但是我的应用程序中有很多方法,因此我想从APP.config文件中进行设置,这样它将适用于应用程序级别,任何人都可以告诉我如何实现此目标 谢谢 问题答案: 实现此目的的最简单方法是在类似以下内容的地方添加新条目: 然后,创建一个将填充值

  • 问题内容: 我试着把这2行 在我的根.htaccess文件中,但这给我带来“内部服务器错误”消息… php5正在服务器上运行, 我无权访问php.ini,因此我认为htaccess是我唯一的机会。 你能告诉我哪里错了吗? 提前致谢 问题答案: 是正确的。 您将必须与您的托管服务商联系-有些不允许您更改php.ini中的值

  • 我希望从服务器加载数据并显示到我的应用程序中(

  • 我想将JBoss5中的JVM选项设置为: 我怎么能这么做? ...22:12:32,015错误[ProfileServiceBootstrap]未能加载配置文件:org.jboss.deployers.spi.deploymentException.rethrowsdeploymentException.restrowasdeploymentException(deploymentExceptio