相关疑难解决方法(0)

在is_valid()之前设置表单字段值

我在抓住如何做到这一点时遇到了一些麻烦.我已尽最大努力搜索谷歌而没有任何运气.

我将从一些代码开始,并解释我正在尝试做的事情:

models.py

class Action(models.Model):
    title = models.CharField(max_length=200)
    owner = models.ForeignKey(User, related_name='actions')
    created_by = models.ForeignKey(User, related_name='+', editable=False)
    modified_by = models.ForeignKey(User, related_name='+', editable=False)

class ActionForm(ModelForm):
    class Meta:
        model = Action
Run Code Online (Sandbox Code Playgroud)

views.py

默认情况下,所有者有一个下拉字段.我有一个图标,允许用户在文本字段中输入新的用户名,而不是所有者.我检查是否owner_new已提交,如果是,则创建该用户.然后我需要将该owner字段设置为该值,这样form.is_valid()才会成立.

def action_create(request):
    if request.method == 'POST':
        form = ActionForm(request.POST)
        # check if new user should be created
        if 'owner_new' in request.POST:
            # check if user already exists
            user = User.objects.get(username=request.POST.get('owner_new'))
            if not user:
                user = User.objects.create_user(request.POST.get('owner_new'))
            # HERE IS WHERE I'M STUMPED
            form.owner …
Run Code Online (Sandbox Code Playgroud)

django django-forms

8
推荐指数
1
解决办法
5982
查看次数

标签 统计

django ×1

django-forms ×1