相关疑难解决方法(0)

在Django forms.ChoiceField上设置所选值

以下是表单中的字段声明:

max_number = forms.ChoiceField(widget = forms.Select(), 
    choices = ([('1','1'), ('2','2'),('3','3'), ]), initial='3', required = True,)
Run Code Online (Sandbox Code Playgroud)

我想将初始值设置为3,这似乎不起作用.我玩过param,引用/没有引号等...但没有变化.

我通过Google发现的一些结果表明可以设置初始值,但我从来没有设法让它工作!顺便说一句,我在django 1.0上.

如果可能,有人能给我一个明确的答案吗?和/或我的代码片段中的必要调整?

非常感谢.

django django-models django-forms

105
推荐指数
5
解决办法
13万
查看次数

如何将CreateView与ModelForm一起使用

当我提交表单时,我在我的类AuthorCreateForm中收到错误.未定义NameError self

我如何使用CreateForm?

我在Author.py文件中创建了一个类

from django.views.generic import TemplateView, ListView, CreateView
from books.models import Author, Publisher, Book
from books.forms import AuthorForm

class AuthorCreateView(CreateView):
    objAuthorForm = AuthorForm(self.request.POST)

    if(objAuthorForm.save()):
        success = "Form saved!"
    else:
        error = "There was an error!"
Run Code Online (Sandbox Code Playgroud)

我有一个提交到/ Author/Create的html模板

我的urls.py中有以下行

('^authors/create/$', Author.AuthorCreateView.as_view()),
Run Code Online (Sandbox Code Playgroud)

我在这个URL上渲染表单

('^authors/new/$', TemplateView.as_view(template_name="author_new.html")),
Run Code Online (Sandbox Code Playgroud)

我发现基于类的视图令人困惑,有没有人有一个关于如何将它用于CRUD操作的好教程?

谢谢

django django-views

52
推荐指数
1
解决办法
6万
查看次数

如何限制 Django CreateView 中外键字段的选择?

我有一个沿着这些路线的模型结构:

# models.py
class Foo(models.Model):
    ...

class Bar(models.Model):
    foo = models.ForeignKey(Foo)
    ...

class Baz(models.Model):
    bar = models.ForeignKey(Bar)
    ...
Run Code Online (Sandbox Code Playgroud)

现在,在DetailViewforFoo实例上,我有一个链接来创建Baz 属于该Foo实例的实例(通过其Bar实例之一)。该链接指向以下内容CreateView

class BazCreateView(CreateView):
    model = Baz
    fields = ['bar', ...]
Run Code Online (Sandbox Code Playgroud)

由于要创建的 Baz 实例应属于 foo 的 Bar 实例之一,因此我想将该字段的选择限制为属于 foo 的 Bar 实例。

到目前为止,我发现ForeignKey.limit_choices_to这似乎用于 Model 和 This question 这是 9 岁,因此可能有一个过时的答案。如果它没有过时,我想就如何访问form接受的答案中提到的对象以及如何将Barid传递给 CreateView提供一些建议。

python django

3
推荐指数
1
解决办法
1358
查看次数