相关疑难解决方法(0)

如何在modelform中给出初始值

如何为ModelForm中的字段分配初始值?例如:

class Form1(forms.Form):
    title=forms.CharField(initial="hello")
Run Code Online (Sandbox Code Playgroud)

使用modelForm的等价物的基本语法是这样的:

class Form2(djangoforms.ModelForm):
    class Meta:
        model=SomeModel
        fields=('title',)
Run Code Online (Sandbox Code Playgroud)

我想要做的是生成一个CRUD.由于我在一个appengine项目中这样做,我不能使用通用视图.Appengine为我们提供了djangoforms.ModelForm与django一样的工作,ModelForm但使用了appengine的数据存储.

我需要以上功能来执行"编辑"部分.

django google-app-engine

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

如何将当前登录的用户指定为模型字段的默认值?

我想做这样的事情:

class Task(models.Model):
    ...
    created_by = models.ForeignKey(User, **default=[LoggedInUser]** blank=True, null=True, related_name='created_by')
Run Code Online (Sandbox Code Playgroud)

这可能吗?除了在视图中执行request.user之外,我无法找到获取登录用户的正确方法,这在此处似乎不起作用.

PS_我意识到我可以通过其他方式初始化Model数据,但我认为这是最干净的方法.

django django-models

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

如何使用ManyToMany字段填充默认表单数据?

好的,我现在已经抓取了谷歌和Django文档超过2个小时(以及freenode上的IRC频道),并且无法解决这个问题.

基本上,我有一个名为的模型Room,如下所示:

class Room(models.Model):
    """
    A `Partyline` room. Rooms on the `Partyline`s are like mini-chatrooms. Each
    room has a variable amount of `Caller`s, and usually a moderator of some
    sort. Each `Partyline` has many rooms, and it is common for `Caller`s to
    join multiple rooms over the duration of their call.
    """
    LIVE = 0
    PRIVATE = 1
    ONE_ON_ONE = 2
    UNCENSORED = 3
    BULLETIN_BOARD = 4
    CHILL = 5
    PHONE_BOOTH = 6
    TYPE_CHOICES = (
        ('LR', 'Live …
Run Code Online (Sandbox Code Playgroud)

python django django-forms

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

Django:如何在呈现表单之前但初始化表单之后修改表单字段的值?

给定一种形式,我想在呈现字段之前更改其值。这是我正在尝试的:

class RequiredFormSet(BaseFormSet):
    def add_form(self):
        tfc = self.total_form_count()
        self.forms.append(self._construct_form(tfc))
        if self.is_bound:
            data = self.management_form.data.copy() # make data mutable
            data[TOTAL_FORM_COUNT] = self.management_form.cleaned_data[TOTAL_FORM_COUNT] + 1
            self.management_form.data = data
        else:
            self.extra += 1
Run Code Online (Sandbox Code Playgroud)

我以为所有内容都存储在中data,但是我想那data已经传递到各个字段(或小部件)了吗?那我需要精确修改什么属性?

django django-forms

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

Django形成干净的数据

我正在尝试使用表单中的干净方法来清理数据,但是当我这样做时,我不会在我的表单中看到验证错误,它是来自django的唯一错误页面.

我有编辑和创建表单,我想在一个地方清洁,但不能复制到2个视图.

你能给我一些建议吗?我阅读了关于表格中干净和有效的文档,但我仍然存在问题.我举一个例子:

Views.py

@user_passes_test(lambda u: u.is_staff, login_url='/account/login/')
def client_create(request):

    dict = {}

    if request.method == 'POST':
        form_user = ClientUserCreateForm(request.POST, prefix="user")
        form_client = ClientForm(request.POST, prefix="client")
        if form_user.is_valid() and form_client.is_valid():
            obj_user = form_user.save(commit=False)
            obj_client = form_client.save(commit=False)

            obj_user.username = form_client.cleaned_data['vat']
            obj_user.set_password(form_client.cleaned_data['vat'])
            obj_user.is_active = 1
            obj_user.save()

            obj_client.id_id = obj_user.id
            obj_client.save()

                # Redirect to Client profile
                return HttpResponseRedirect(reverse('client_profile', args={obj_client.id_id}))

        # If forms have error show view again with errors
        dict['form_user'] = form_user
        dict['form_client'] = form_client
        return render(request, 'panel/client/form.html', dict)
    else:
        dict['form_user'] = ClientUserCreateForm(prefix="user")
        dict['form_client'] …
Run Code Online (Sandbox Code Playgroud)

django django-forms

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

如何将 Django 选择表单字段的默认值设置为 None

下面的 Django 表单可以工作,但对于我来说,我无法弄清楚如何将 ModelChoiceField 设为operator空白或设置None为默认值。我希望用户可以选择将此选择字段设置为None。这会自动填充用户列表中的第一个用户。

模型

class Build(models.Model):
    PSScustomer = models.ForeignKey(Customer, on_delete=models.CASCADE)
    author =  models.ForeignKey(get_user_model(),related_name='+',on_delete=models.CASCADE,blank=True, null= True,)
    plannedAuthor =  models.ForeignKey(CustomUser,related_name='+',blank=True, null= True, on_delete=models.CASCADE)
    status = models.CharField(max_length=100,blank=True,)
    operator = models.ForeignKey(CustomUser,related_name='+',blank=True, null= True, on_delete=models.CASCADE, default=None)
Run Code Online (Sandbox Code Playgroud)

看法

class queuedBuild_CreateView(LoginRequiredMixin,CreateView):
    model = Build
    form_class = queuedBuild_Creation_Form
    template_name = 'addQueuedBuild.html'
    login_url = 'login'
    success_url = reverse_lazy('equipmentdashboard')

    def get_form(self, form_class=None):
        form = super().get_form(form_class)
        customer = self.request.user.PSScustomer
        form.fields['operator'].choices = [(item.id, item.first_name) for item in CustomUser.objects.filter(isDevice=False, PSScustomer = customer)]
        return form
Run Code Online (Sandbox Code Playgroud)

形式 …

django

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