小编Bar*_*rka的帖子

Django如何设置模板中隐藏输入的值

如何在模板中设置who和的值?image

class CommentForm(ModelForm):
    who = forms.CharField(widget=forms.HiddenInput())
    image = forms.ImageField(widget=forms.HiddenInput())

    class Meta:
        model = Comments
        fields = ['who', 'image', 'content']
Run Code Online (Sandbox Code Playgroud)

它不起作用(原始文本):

<form method='POST' action=''>
    {% csrf_token %}
    {% render_field comment_form.content class="form-control form-control-sm" placeholder='Comment..' %}
    {% render_field comment_form.who class="form-control form-control-sm" value='{{ request.user.profile.pk }}' %}
    {% render_field comment_form.image class="form-control form-control-sm" value='{{ image.pk }}' %}
    <input class="btn btn-primary btn-sm" type="submit" value="Add comment">
</form>
Run Code Online (Sandbox Code Playgroud)

我的views.py

class ProfileView(DetailView):
    comment_form = CommentForm()
    queryset = Profile.objects.all()
    context_object_name = 'me'
    template_name = 'profile.html'

    def …
Run Code Online (Sandbox Code Playgroud)

python django

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

带有一个密码的Django UserCreationForm

我想知道是否可以在没有密码确认(仅password1)的情况下使用UseCreationForm。我正在使用的代码:

#forms.py
class UserRegistrationForm(UserCreationForm):
    email = forms.EmailField(max_length=200, help_text='Required')

    class Meta:
        model = User
        fields = ('username', 'email', 'password1', 'password2')

#views.py
class HomeView(View):
    template_name = 'home.html'

    def get(self, request):
        queryset = Profile.objects.filter(verified=True)
        form = UserRegistrationForm()
        context = {
            'object_list': queryset,
            'form':form,
            'num_of_users': User.objects.all().count()
        }
        return render(request, self.template_name, context)
Run Code Online (Sandbox Code Playgroud)

问题是,当我这样创建form.py时:

class UserRegistrationForm(UserCreationForm):
    email = forms.EmailField(max_length=200, help_text='Required')

    class Meta:
        model = User
        fields = ('username', 'email', 'password1')
Run Code Online (Sandbox Code Playgroud)

表单还具有字段password2。有什么解决办法吗?

python django python-3.x

6
推荐指数
2
解决办法
1346
查看次数

Django transaction.atomic() 不起作用

我对这段代码有一个问题:

PhoneNumberFormSet = inlineformset_factory(Person, PhoneNumber, fields=('phone_number',), 
can_delete=False, extra=1)

EmailAddressFormSet = inlineformset_factory(Person, EmailAddress, fields=('email_address',), 
can_delete=False, extra=1)

class PersonCreateView(CreateView):

    form_class = PersonForm
    success_url = reverse_lazy('person-list')
    template_name = 'contacts/person_create.html'

    def get_context_data(self, **kwargs):
        data = super(PersonCreateView, self).get_context_data(**kwargs)
        data['phone_formset'] = PhoneNumberFormSet(self.request.POST or None)
        data['email_formset'] = EmailAddressFormSet(self.request.POST or None)
        return data

    def form_valid(self, form):
        context = self.get_context_data()
        phone_formset = context['phone_formset']
        email_formset = context['email_formset']
        with transaction.atomic():
            o = form.save() # <--- this object is saved even when formsets below are not valid
            condition = phone_formset.is_valid() and email_formset.is_valid() …
Run Code Online (Sandbox Code Playgroud)

python django

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

如何修复“功能中的非穷举模式”

我想将一个列表作为参数传递给一个函数,该函数将该列表的每个元素乘以3。我必须使用递归(我知道该怎么做)和map函数(有问题)。

我正在尝试将列表作为参数传递,就像我在其他帖子中看到的那样,但是它不起作用。

fun x = 3 * x + 1
mult :: [Int] -> [Int]
mult [a] = map fun [a]
Run Code Online (Sandbox Code Playgroud)

我尝试的代码显示:异常:x:函数mult中的非穷举模式

haskell pattern-matching non-exhaustive-patterns

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