首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ModelForm场吸引

ModelForm场吸引
EN

Stack Overflow用户
提问于 2017-11-26 23:10:37
回答 1查看 2.8K关注 0票数 1

根据姜戈博士,modelform字段接受attrs。当我尝试应用attrs时,我得到

TypeError:init()得到了一个意外的关键字参数'attrs‘

我试图制作的表单非常简单,我只想将样式应用于它。我做错了什么?

forms.py

代码语言:javascript
复制
from django import forms

from .models import ServiceReportModel


class ServiceReportCreateForm(forms.ModelForm):
    class Meta:
        model = ServiceReportModel
        fields = [
            'request_number',
            'request_reason',
            'actions_taken',
        ]


class ServiceReportUpdateForm(forms.ModelForm):
    class Meta:
        model = ServiceReportModel
        fields = [
            'report_number',
            'request_number',
            'request_reason',
            'actions_taken',
        ]
        widgets = {
            'report_number': forms.CharField(attrs={'class': 'form-control'}),
            'request_number': forms.CharField(attrs={'class': 'form-control'}),
            'request_reason': forms.CharField(attrs={'class': 'form-control'}),
            'actions_taken': forms.Textarea(attrs={'class': 'form-control'}),
        }

views.py

代码语言:javascript
复制
from django.views.generic.edit import CreateView, UpdateView, DeleteView
from django.urls import reverse_lazy

from .forms import ServiceReportCreateForm, ServiceReportUpdateForm
from .models import ServiceReportModel


class ReportCreateView(CreateView):
    form_class = ServiceReportCreateForm
    model = ServiceReportModel


class ReportCreateView(UpdateView):
    form_class = ServiceReportUpdateForm
    model = ServiceReportModel


class ReportDeleteView(DeleteView):
    model = ServiceReportModel
    success_url = reverse_lazy('reports-list')

models.py

代码语言:javascript
复制
import uuid
from django.urls import reverse
from django.db import models
from django.forms import ModelForm
from main import models as main_models
from customers import models as customers_models


class ServiceReportModel(models.Model):
    report_number = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    request_number = models.ForeignKey(ServiceRequestModel,
                                       on_delete=models.PROTECT,
                                       null=True,
                                       related_name='s_report_number'
                                      )
    reported_by = models.ForeignKey(main_models.MyUser, editable=False, related_name='reports')
    reported_date = models.DateTimeField(auto_now_add=True)
    updated_by = models.ForeignKey(main_models.MyUser, editable=True, blank=True, null=True, related_name='+')
    updated_date = models.DateTimeField(auto_now=True)
    request_reason = models.CharField(max_length=255, null=True)
    actions_taken = models.TextField()

    def get_absolute_url(self):
        return reverse('service-report', kwargs={'pk': self.pk})
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-26 23:39:33

字段不接受attrs,小部件接受。类似地,widgets字典期望的是小部件,而不是字段。您应该使用TextInput

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47502007

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档