Django的'unicode'对象没有属性'_meta'

艾塞克斯

为了解决这个错误,我整天整夜都花了这个时间:

AttributeError at /Identity/formulaire_edit
'unicode' object has no attribute '_meta'
Request Method: GET
Request URL:    http://localhost:8000/Identity/formulaire_edit?csrfmiddlewaretoken=DvKCCaaAYsiWykEtYHrpgNu4AKlXS16DttEc5csQOT9BtQs4Ll4AviLDhi3MaBId&q4=2
Django Version: 1.10
Exception Type: AttributeError
Exception Value:    
'unicode' object has no attribute '_meta'
Exception Location: /Library/Python/2.7/site-packages/django/forms/models.py in model_to_dict, line 82
Python Executable:  /usr/bin/python
Python Version: 2.7.10
Python Path:    
['/Users/valentinjungbluth/Desktop/Django/Etat_civil',
 '/Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg',
 '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python27.zip',
 '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7',
 '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin',
 '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac',
 '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages',
 '/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python',
 '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk',
 '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old',
 '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload',
 '/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/PyObjC',
 '/Library/Python/2.7/site-packages']
Server time:    jeu, 1 Déc 2016 07:48:15 +0000
Traceback Switch to copy-and-paste view

/Library/Python/2.7/site-packages/django/core/handlers/exception.py in inner
            response = get_response(request) ...
▶ Local vars
/Library/Python/2.7/site-packages/django/core/handlers/base.py in _get_response
                response = self.process_exception_by_middleware(e, request) ...
▶ Local vars
/Library/Python/2.7/site-packages/django/core/handlers/base.py in _get_response
                response = wrapped_callback(request, *callback_args, **callback_kwargs) ...
▶ Local vars
/Users/valentinjungbluth/Desktop/Django/Etat_civil/Identity/views.py in Identity_Update
    form = IdentityForm(request.POST or None, instance = query_update) 

我不能使用我的函数,我认为这是因为尝试值应为原始整数,但是我需要将此变量放入整数中。这是用户返回的值:

# models.py

#-*- coding: utf-8 -*-

from django.db import models

######################################
# Choix à l'utilisateur pour le sexe #
######################################

SEX_CHOICES = (
    ('M', 'Mâle'),
    ('F', 'Femelle')
)
##########################################
# Choix à l'utilisateur pour la civilité #
##########################################

TITLE_CHOICES = (
    ('Mr', 'Monsieur'),
    ('Mlle', 'Mademoiselle'),
    ('Mme','Madame'),
    ('Dr','Docteur'),
    ('Me','Maître'),
)

###################################################
# Création d'une table répertoriant tous les pays #
###################################################

class Country(models.Model):

    code = models.CharField(max_length=3, null=False)  # Example : 'FR' - 'US'
    pays = models.CharField(max_length=50, null=False)  # Example : 'France' - 'Etats-Unis'

    def __unicode__(self):
        #return '%s %s %s' % (self.id, self.code, self.pays)
        return self.pays

####################################################################################
# Création d'une table permettant de renseigner toutes les informations concernant #
#                les parents et reprise de celles des enfants                      #
####################################################################################

class Identity(models.Model):

    title = models.CharField(max_length=12,choices=TITLE_CHOICES, verbose_name='Civilité')
    lastname = models.CharField(max_length=30, verbose_name='Nom de famille')
    firstname = models.CharField(max_length=30, verbose_name='Prénom(s)')
    sex = models.CharField(max_length=1, choices=SEX_CHOICES, verbose_name='sexe')
    birthday = models.DateField(verbose_name='Date de naissance')
    birthcity = models.CharField(max_length=30, verbose_name='Ville de naissance')
    birthcountry = models.ForeignKey(Country, related_name='Pays_naissance', verbose_name='Pays de Naissance')
    nationality = models.CharField(max_length=30, verbose_name='Nationalité')
    job = models.CharField(max_length=30, verbose_name='Profession')
    adress = models.CharField(max_length=30, verbose_name='Adresse')
    city = models.CharField(max_length=30, verbose_name='Ville')
    zip = models.IntegerField(verbose_name='Code Postal')
    country = models.ForeignKey(Country, related_name='Pays1', verbose_name='Pays')
    mail = models.CharField(max_length=30, verbose_name='Email', blank=True)
    phone = models.CharField(max_length=20, verbose_name='Téléphone', blank=True)

    def __unicode__(self):
        return '%s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s' % (self.id, self.title, self.lastname, self.firstname, self.sex, self.birthday, self.birthcity, self.birthcountry,
                                                                    self.nationality, self.job, self.adress, self.city, self.zip, self.country, self.mail, self.phone)

我的forms.py文件:

#-*- coding: utf-8 -*-

from django import forms
from .models import *

class IdentityForm(forms.ModelForm) :

    class Meta :
        model = Identity
        fields = '__all__'

我关于Identity_Update()功能的views.py文件

def Identity_Update(request) :

    query_update = request.GET.get('q4')
    print query_update

    if query_update :
        query_update_list = Identity.objects.filter(pk=query_update)    #Identity.objects.only('id').filter(pk=query_update) to get only the ID number
        print query_update_list

    else :
        query_update_list = Identity.objects.none() # == []

    form = IdentityForm(request.POST or None, instance = query_update)

    if form.is_valid():
        form.save()
        return HttpResponseRedirect('accueil')

    template_name = 'edit.html'

    context = {
        "query_update" : query_update,
        "query_update_list" : query_update_list,
        "form":form
    }
    return render(request, template_name, context)

这是我的html模板:

<!-- ############################################## -->
<!-- Modifier un formulaire dans la Base de Données -->
<!-- ############################################## -->

<h2 align="center"> Modification des fiches individuelles </align> </h2>

{% block content %}

<h4> ID du formulaire à modifier : </h4>

<form method="GET" action="">{% csrf_token %}
    <input type="text"  name="q4" placeholder="Entrer un ID" value="{{ request.GET.q4 }}">
    <input type="submit" value="Valider l'ID">
</form>

<ul>
    {% for item in query_update_list %}
    <li>{{item}}</li>
    {% endfor %}
</ul>
<br></br>

<h4> Modification du formulaire : </h4>

<form method='POST' action= "" > {% csrf_token %}

{{form.as_ul}}

<input type ="submit" value="Valider" /> 
</form>

{% endblock %}

您能帮我找到解决方案吗?从昨天开始我就阻止了这个问题。

赛斯

问题是您要传递实例的字符串(query_update)。

form = IdentityForm(request.POST or None, instance = query_update)

相反,您需要传递表单应该更新的单个实例

query_update_list.first() 可能会得到您需要的那个。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Django'AnonymousUser'对象没有属性'_meta'

Django'用户对象没有属性META'

Django'unicode'对象没有属性'field'

django的“ unicode”对象没有属性“ size”

Django:“unicode”对象没有“get”属性

Django makemigrations AttributeError:“ str”对象没有属性“ _meta”

Django AttributeError:“模型”对象没有属性“ _meta”

Django migration AttributeError:“ str”对象没有属性“ _meta”

Django 1.8迁移-“ NoneType”对象没有属性“ _meta”

Django:FileField对象在类Meta中没有属性“ attrs”

'function' 对象没有属性 '_meta' inlineformset_factory django

JSON的Django问题:“元组”对象没有属性“ _meta”

Django:AttributeError:类型对象“ Position”没有属性“ _meta”

Django-LoginView:“ AnonymousUser”对象没有属性“ _meta”

AttributeError: 'NoneType' 对象没有属性 '_meta' Django

/addimam 'int' 对象的 AttributeError 没有属性 '_meta' Django

“功能”对象在Django 1.7中没有属性“ META”吗?

django AbstractUser模型'str'对象没有属性'_meta'

Django Api - 'str' 对象没有属性 '_meta'

AttributeError:“ unicode”对象没有属性“ get”-在Django表单中

'unicode'对象没有属性'get'Django初学者

无法使用Django登录,属性错误:AnonymousUser'对象没有属性'_meta'

将Django queryset序列化为JSON:获取AttributeError'tuple'对象没有属性'_meta'

Django REST框架:AttributeError:序列化器对象没有属性“ Meta”

在Django rest“ PUT”方法上获取“ AttributeError:'QuerySet'对象没有属性'_meta'”

Django Rest Framework: AttributeError: 'NoneType' 对象没有属性 '_meta' [for OneToOneField]

Django Group.objects 猴子补丁问题 - 'NoneType' 对象没有属性 '_meta'

每个文档设置django-comments-xtd时,“ str”对象没有属性“ _meta”错误

Django Admin,不能按以下项分组:异常值:'dict'对象没有属性'_meta'