Py学习  »  Django

参数不能为“NoneType”类型,在Django 3.0中必须为文本类型

VEERA BABU • 3 年前 • 114 次点击  

当我试图创建一封新的求职信时,我遇到了这个错误

Django=3.0

Python=3.7

<tr>
                    <td colspan="4">
                        <span class="form-tag {% if not name_form %} hidden {% endif %}">
                            <form class="form-inline" target="" method="POST" style="margin-top: 0px;">
                                {% csrf_token %}
                                <input type="text" class="span6" name="name" value="{{name_form.name.value}}" placeholder="Cover letter name">
                                <button type="submit" class="btn btn-primary">Create</button>
                                <button type="button" class="btn cancel-btn">Cancel</button>
                            </form>
                        </span>
                        <span class="button-tag {% if name_form %} hidden {% endif %}">
                            {% trans "No data found." %} Click to <a class="new_cover" href="#"> add a new cover letter</a>
                        </span>
                    </td>
                </tr>

以下是我的观点。py公司

class CoverLetterListView(View):
    def get(self, request):
        client = request.user.client
        cover_letters = CoverLetter.objects.filter(client=client, deleted=False,
                                                   is_master=True)
        return render(request, 'quotes/covers/cover_letters_list.django.html',
                      {'cover_letters': cover_letters})

    def post(self, request):
        client = request.user.client
        name_form = forms.CoverLetterNameForm(request.POST)
        cover_letters = CoverLetter.objects.filter(client=client, deleted=False)

        if name_form.is_valid():
            name_form.save_new(client=client)
        else:
            logger.warning(request, 'Invalid form')

        return render(request, 'quotes/covers/cover_letters_list.django.html',
                      {'name_form': name_form, 'cover_letters': cover_letters})

这是我的表格。py公司

class CoverLetterNameForm(forms.ModelForm):
    class Meta:
        model = CoverLetter
        fields = ('name',)

    def save_new(self, client, master=True):
        instance = self.save(commit=False)
        instance.is_master = master
        instance.client = client
        return instance.save()

class CoverLetter(models.Model):
    name = models.CharField(max_length=120)
    title = models.CharField(max_length=120, blank=True, null=True)
    is_master = models.BooleanField(default=False)
    show_logo = models.BooleanField(default=False)
    show_company_name = models.BooleanField(default=False)
    logo = models.ImageField(upload_to=get_logo_path, blank=True, null=True)
    text = BleachField(blank=True, null=True)
    deleted = models.BooleanField(default=False)
    client = models.ForeignKey(Client,on_delete=models.CASCADE)

    created_at = models.DateTimeField(auto_now_add=True)
    modified_at = models.DateTimeField(auto_now=True)

    def __str__(self):
        return self.name

看看我的错误回溯

Traceback (most recent call last):
  File "/home/harika/lightdegree/lib/python3.7/site-packages/django/core/handlers/exception.py", line 34, in inner
    response = get_response(request)
  File "/home/harika/lightdegree/lib/python3.7/site-packages/django/core/handlers/base.py", line 115, in _get_response
    response = self.process_exception_by_middleware(e, request)
  File "/home/harika/lightdegree/lib/python3.7/site-packages/django/core/handlers/base.py", line 113, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/home/harika/lightdegree/lib/python3.7/site-packages/django/contrib/auth/decorators.py", line 21, in _wrapped_view
    return view_func(request, *args, **kwargs)
  File "/home/harika/lightdegree/lib/python3.7/site-packages/django/views/generic/base.py", line 71, in view
    return self.dispatch(request, *args, **kwargs)
  File "/home/harika/lightdegree/lib/python3.7/site-packages/django/views/generic/base.py", line 97, in dispatch
    return handler(request, *args, **kwargs)
  File "/home/harika/krishna test/dev-1.8/mcam/server/mcam/quotes/views.py", line 2077, in post
    name_form.save_new(client=client)
  File "/home/harika/krishna test/dev-1.8/mcam/server/mcam/quotes/forms.py", line 237, in save_new
    return instance.save()
  File "/home/harika/lightdegree/lib/python3.7/site-packages/django/db/models/base.py", line 746, in save
    force_update=force_update, update_fields=update_fields)
  File "/home/harika/lightdegree/lib/python3.7/site-packages/django/db/models/base.py", line 784, in save_base
    force_update, using, update_fields,
  File "/home/harika/lightdegree/lib/python3.7/site-packages/django/db/models/base.py", line 886, in _save_table
    results = self._do_insert(cls._base_manager, using, fields, returning_fields, raw)
  File "/home/harika/lightdegree/lib/python3.7/site-packages/django/db/models/base.py", line 925, in _do_insert
    using=using, raw=raw,
  File "/home/harika/lightdegree/lib/python3.7/site-packages/django/db/models/manager.py", line 82, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "/home/harika/lightdegree/lib/python3.7/site-packages/django/db/models/query.py", line 1204, in _insert
    return query.get_compiler(using=using).execute_sql(returning_fields)
  File "/home/harika/lightdegree/lib/python3.7/site-packages/django/db/models/sql/compiler.py", line 1376, in execute_sql
    for sql, params in self.as_sql():
  File "/home/harika/lightdegree/lib/python3.7/site-packages/django/db/models/sql/compiler.py", line 1321, in as_sql
    for obj in self.query.objs
  File "/home/harika/lightdegree/lib/python3.7/site-packages/django/db/models/sql/compiler.py", line 1321, in <listcomp>
    for obj in self.query.objs
  File "/home/harika/lightdegree/lib/python3.7/site-packages/django/db/models/sql/compiler.py", line 1320, in <listcomp>
    [self.prepare_value(field, self.pre_save_val(field, obj)) for field in fields]
  File "/home/harika/lightdegree/lib/python3.7/site-packages/django/db/models/sql/compiler.py", line 1271, in pre_save_val
    return field.pre_save(obj, add=True)
  File "/home/harika/lightdegree/lib/python3.7/site-packages/django_bleach/models.py", line 32, in pre_save
    **self.bleach_kwargs
  File "/home/harika/lightdegree/lib/python3.7/site-packages/bleach/__init__.py", line 90, in clean
    return cleaner.clean(text)
  File "/home/harika/lightdegree/lib/python3.7/site-packages/bleach/sanitizer.py", line 169, in clean
    raise TypeError(message)
TypeError: argument cannot be of 'NoneType' type, must be of text type

我通过添加模型编辑了我的问题。py和错误回溯请查看

如何解决此错误

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/137013
 
114 次点击