相关疑难解决方法(0)

Django:使用表单在一个模板中的多个模型

我正在构建支持票据跟踪应用程序,并且我想从一个页面创建一些模型.门票通过ForeignKey属于客户.Notes也通过ForeignKey属于Tickets.我想选择一个客户(这是一个完整的单独项目)或创建一个新客户,然后创建一个Ticket,最后创建一个分配给新票证的Note.

由于我是Django的新手,我倾向于迭代工作,每次尝试新功能.我玩过ModelForms,但我想隐藏一些字段并进行一些复杂的验证.看起来我正在寻找的控制级别要么需要使用formset,要么手工完成所有操作,完成一个繁琐的手工编码模板页面,我试图避免.

我有什么可爱的功能吗?有人使用formset有一个很好的参考或示例吗?我为他们花了整整一个周末的API文档,我仍然无能为力.如果我分解并手工编写所有内容,这是一个设计问题吗?

python django django-forms

110
推荐指数
6
解决办法
9万
查看次数

将request.user与Django ModelForm一起使用

我遇到了登录用户和Django的问题ModelForm.我有一个名为类_Animal_具有ForeignKeyUser以及与年龄,种族,动物的一些数据,等等.

用户可以添加动物的分贝,我要跟踪每个动物的作者,所以我需要添加request.user当用户创建的动物实例被记录.

models.py

class Animal(models.Model):
    name = models.CharField(max_length=300)
    age = models.PositiveSmallIntegerField()
    race = models.ForeignKey(Race)
    ...
    publisher = models.ForeignKey(User)
    def __unicode__(self):
        return self.name

class AnimalForm(ModelForm):
    class Meta:
        model = Animal
Run Code Online (Sandbox Code Playgroud)

主要目标是隐藏表单中的发布者字段,并在按下保存按钮时提交已登录的用户.

我可以在视图中捕获当前用户initial,但我也想要的不显示该字段.

views.py

@login_required
def new_animal(request):
    if request.method == "POST":
        form = AnimalForm(request.POST)
        if form.is_valid():
            form.save()
            return redirect('/')
        else:
            variables = RequestContext(request, {'form': form})
            return render_to_response('web/animal_form.html', variables)
    else:
        form = AnimalForm(initial={'publisher': request.user})
    variables = RequestContext(request, {'form': form})
    return render_to_response('web/animal_form.html', …
Run Code Online (Sandbox Code Playgroud)

python django django-forms django-views

18
推荐指数
2
解决办法
1万
查看次数

正确的用户名密码不能登录django

我正在用 django 开发一个小网站,我正在使用内置的登录视图。当我注册一个标准用户,然后尝试使用正确的凭据登录时,它会显示登录错误“请输入正确的用户名和密码”。我创建的超级用户不会出现此问题。可以使用正确的凭据登录而不会显示任何错误消息。

这是带有我的注册视图的 views.py。

from django.shortcuts import redirect, render, get_object_or_404
from django.contrib.auth.models import User
from .forms import UserForm

def register_user(request):
    if request.method == "POST":
        form = UserForm(request.POST)
        if form.is_valid():
            user = form.save()
            return redirect('user_profile', pk=user.pk)
    else:
        form = UserForm()
    return render(request, 'interport/register_user.html', {'form':form})
Run Code Online (Sandbox Code Playgroud)

admin.py:

from django.contrib import admin
from django.contrib.auth.models import User
Run Code Online (Sandbox Code Playgroud)

表格.py:

from django import forms
from django.contrib.auth.models import User

class UserForm(forms.ModelForm):
    class Meta:
    model = User
    fields = ('first_name', 'last_name', 'email', 'username', 'password',)
Run Code Online (Sandbox Code Playgroud)

网址.py:

from django.conf.urls import …
Run Code Online (Sandbox Code Playgroud)

python authentication django login

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

为什么我们在 Django 视图中使用 form.save(commit=False)?

我无法理解我们使用form.save(commit=False)而不是简单地使用form.savein 的原因Django-views。有人可以向我解释两者的区别和必要性吗?

django django-views

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