小编met*_*ner的帖子

在基于 Django 类的视图中从上下文数据设置初始表单字段值

我有一个带有激活密钥的激活网址( /user/activate/123123123 )。这样做没有任何问题。get_context_data 可以将其很好地放入模板中。我想要做的是将其作为关键字段的初始值,以便用户只需输入注册时创建的用户名和密码。

如何从 context 或 get() 中提取密钥而不将字段硬编码到模板中?

class ActivateView(FormView):
    template_name = 'activate.html'
    form_class = ActivationForm
    #initial={'key': '123123123'} <-- this works, but is useless

    success_url = 'profile'

    def get_context_data(self, **kwargs):
        if 'activation_key' in self.kwargs:
            context = super(ActivateView, self).get_context_data(**kwargs)
            context['activation_key'] = self.kwargs['activation_key']
            """
            This is what I would expect to set the value for me. But it doesn't seem to work.
            The above context works fine, but then I would have to manually build the 
            form in the  template which …
Run Code Online (Sandbox Code Playgroud)

forms django django-context

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

用于创建AbstractUser扩展模型的Django管理表单

我有一个扩展/继承AbstractUser的用户模型.我还希望管理员中的用户创建表单匹配,但由于某种原因,我只能让它显示用户名和密码字段.没有其他的.

我发现特别有趣的是,我对admin.py中的这三个字段所做的更改反映在创建表单中,但其他字段从不显示.例如,我可以更改密码1的帮助文本或标签,并在表单中呈现,但其他字段则不会.

此外,如果我设置扩展UserAdmin并注册(如下面的代码所示),我得到一个普通用户的3字段创建视图,但如果我扩展ModelAdmin我得到所有我的字段,但不能使用密码更新形成.它404s.

值得注意的是,进入对象列表的链接是'User',而不是'CommonUser',因为我的模型被调用,但这可能是一个类meta.


admin.py

from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from django.contrib.auth.forms import UserChangeForm, UserCreationForm
from models import CommonUser, Account, Registry
from django import forms


class MyUserChangeForm(UserChangeForm):
    class Meta(UserChangeForm.Meta):
        model = CommonUser


class MyUserCreationForm(UserCreationForm):

 password = forms.CharField(
    label='Password',
    max_length = 32,
    required=True,
    widget=forms.PasswordInput,
    )

password2 = forms.CharField(
    label='Confirm',
    max_length = 32,
    required=True,
    widget=forms.PasswordInput,
    help_text="Make sure they match!",
    )


class Meta(UserCreationForm.Meta):
    model = CommonUser
    fields = ['username', 'password', 'password2', 'email',
        'first_name','last_name','address','city','state','zipcode',
        'phone1','phone2',]
    help_texts = {
        'password': 'Must be …
Run Code Online (Sandbox Code Playgroud)

python forms django admin

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

在模板中使用 django 查询集会影响数据库吗?

当针对非上下文值调用时,模板值标签是否会强制 django 访问数据库?

例如:

{{ request.user.username }}是显示当前登录用户的用户名的调用。但是,类似的东西{{ request.user.someobject_set.all }}会将 FK 遍历的查询集转储到模板中。

用户的someobject设置是否默认转储到上下文中,或者我是否需要在def get_context_data我的视图中使用查询集创建上下文条目?通过扩展,可以通过关联找到任何其他非请求对象?

下面的文档显示了何时在原始 python 中评估查询集,但并未真正提及模板和视图及其关系。


https://docs.djangoproject.com/en/1.6/ref/models/querysets/#when-querysets-are-evaluated

python django templates django-queryset

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