Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django ForeignKey&x27;对象没有属性';型号';_Django_Django Models_Django Admin - Fatal编程技术网

Django ForeignKey&x27;对象没有属性';型号';

Django ForeignKey&x27;对象没有属性';型号';,django,django-models,django-admin,Django,Django Models,Django Admin,我有两个模型(eisfiles和AuthPermissionAdd),我正在尝试添加一对多关系,如下面的代码所示。但由于某些原因,我得到的“ForeignKey”对象没有属性“model”。请帮助我哪里做错了 class eisfiles(models.Model): user = models.OneToOneField(User, on_delete=models.CASCADE) htmlname = models.CharField(max_length=100)

我有两个模型(eisfiles和AuthPermissionAdd),我正在尝试添加一对多关系,如下面的代码所示。但由于某些原因,我得到的“ForeignKey”对象没有属性“model”。请帮助我哪里做错了

 class eisfiles(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    htmlname = models.CharField(max_length=100)
    meterId = models.CharField(max_length=100)
    esiid = models.CharField(max_length=100)
    metermultiplier = models.CharField(max_length=100)
    DbName = models.CharField(max_length=100,default='test')
    DbTable = models.CharField(max_length=100)
    address=models.CharField(max_length=100)

    def __str__(self):
        return self.htmlname
    def __str__(self):
        return self.DbName
    def __str__(self):
        return self.address

class AuthPermissionAdd(models.Model):
    user_id = models.CharField(max_length=500)
    eisfiles_id = models.ForeignKey(eisfiles)
    temp_id_id_id = models.IntegerField(blank=True, null=True)
    # print eisfiles_id


    Traceback (most recent call last):
  File "C:\Python27\lib\site-packages\django\utils\autoreload.py", line 226, in wrapper
    fn(*args, **kwargs)
  File "C:\Python27\lib\site-packages\django\core\management\commands\runserver.py", line 109, in inne
    autoreload.raise_last_exception()
  File "C:\Python27\lib\site-packages\django\utils\autoreload.py", line 249, in raise_last_exception
    six.reraise(*_exception)
  File "C:\Python27\lib\site-packages\django\utils\autoreload.py", line 226, in wrapper
    fn(*args, **kwargs)
  File "C:\Python27\lib\site-packages\django\__init__.py", line 18, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "C:\Python27\lib\site-packages\django\apps\registry.py", line 108, in populate
    app_config.import_models(all_models)
  File "C:\Python27\lib\site-packages\django\apps\config.py", line 202, in import_models
    self.models_module = import_module(models_module_name)
  File "C:\Python27\Lib\importlib\__init__.py", line 37, in import_module
    __import__(name)
  File "D:\python\project\energy_style\myapp\login\models.py", line 332, in <module>
    class AuthPermissionAdd(models.Model):
  File "D:\python\project\energy_style\myapp\login\models.py", line 338, in AuthPermissionAdd
    print eisfiles_id;
  File "C:\Python27\lib\site-packages\django\utils\six.py", line 842, in <lambda>
    klass.__str__ = lambda self: self.__unicode__().encode('utf-8')
  File "C:\Python27\lib\site-packages\django\db\models\fields\__init__.py", line 188, in __str__
    model = self.model
AttributeError: 'ForeignKey' object has no attribute 'model'
类文件(models.Model):
user=models.OneToOneField(用户,on_delete=models.CASCADE)
htmlname=models.CharField(最大长度=100)
meterId=models.CharField(最大长度=100)
ESID=models.CharField(最大长度=100)
metermultiplier=models.CharField(最大长度=100)
DbName=models.CharField(最大长度=100,默认值为=“测试”)
DbTable=models.CharField(最大长度=100)
地址=models.CharField(最大长度=100)
定义(自我):
返回self.htmlname
定义(自我):
返回self.DbName
定义(自我):
返回自我地址
类AuthPermissionAdd(models.Model):
用户id=models.CharField(最大长度=500)
eisfiles\u id=models.ForeignKey(eisfiles)
temp\u id\u id\u id=models.IntegerField(blank=True,null=True)
#打印EISU id文件
回溯(最近一次呼叫最后一次):
包装器中的文件“C:\Python27\lib\site packages\django\utils\autoreload.py”,第226行
fn(*args,**kwargs)
inne中第109行的文件“C:\Python27\lib\site packages\django\core\management\commands\runserver.py”
autoreload.raise\u last\u异常()
文件“C:\Python27\lib\site packages\django\utils\autoreload.py”,第249行,在raise\u last\u异常中
六、重放(*_例外)
包装器中的文件“C:\Python27\lib\site packages\django\utils\autoreload.py”,第226行
fn(*args,**kwargs)
文件“C:\Python27\lib\site packages\django\\uuuuu init\uuuuuuu.py”,第18行,在安装程序中
应用程序。填充(设置。已安装的应用程序)
文件“C:\Python27\lib\site packages\django\apps\registry.py”,第108行,填充
app_config.import_models(所有_models)
文件“C:\Python27\lib\site packages\django\apps\config.py”,第202行,在import\u模型中
self.models\u module=导入模块(models\u module\u name)
文件“C:\Python27\Lib\importlib\\uuuu init\uuuuu.py”,第37行,在导入模块中
__导入(名称)
文件“D:\python\project\energy\u style\myapp\login\models.py”,第332行,在
类AuthPermissionAdd(models.Model):
文件“D:\python\project\energy\u style\myapp\login\models.py”,第338行,在AuthPermissionAdd中
打印EISU id文件;
文件“C:\Python27\lib\site packages\django\utils\six.py”,第842行,在
klass.\uuuu str\uuuu=lambda self:self.\uuuuuu unicode\uuuuu().encode('utf-8'))
文件“C:\Python27\lib\site packages\django\db\models\fields\\ uuuu init\ uuuu.py”,第188行,在__
model=self.model
AttributeError:“ForeignKey”对象没有属性“model”
若我从模型中删除print语句并尝试添加项,将显示以下错误

Environment:


Request Method: GET
Request URL: http://localhost:9090/admin/login/authpermissionadd/add/

Django Version: 1.9.4
Python Version: 2.7.11
Installed Applications:
['login',
 'django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'rolepermissions']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware']


Template error:
In template C:\Python27\lib\site-packages\django\contrib\admin\templates\admin\change_form.html, error at line 33
   __str__ returned non-string (type NoneType)   23 : {% endblock %}
   24 : {% endif %}
   25 : 
   26 : {% block content %}<div id="content-main">
   27 : {% block object-tools %}
   28 : {% if change %}{% if not is_popup %}
   29 :   <ul class="object-tools">
   30 :     {% block object-tools-items %}
   31 :     <li>
   32 :         {% url opts|admin_urlname:'history' original.pk|admin_urlquote as history_url %}
   33 :         <a href="{% add_preserved_filters histo ry_url %}" class= "historylink">{% trans "History" %}</a>
   34 :     </li>
   35 :     {% if has_absolute_url %}<li><a href="{{ absolute_url }}" class="viewsitelink">{% trans "View on site" %}</a></li>{% endif %}
   36 :     {% endblock %}
   37 :   </ul>
   38 : {% endif %}{% endif %}
   39 : {% endblock %}
   40 : <form {% if has_file_field %}enctype="multipart/form-data" {% endif %}action="{{ form_url }}" method="post" id="{{ opts.model_name }}_form" novalidate>{% csrf_token %}{% block form_top %}{% endblock %}
   41 : <div>
   42 : {% if is_popup %}<input type="hidden" name="{{ is_popup_var }}" value="1" />{% endif %}
   43 : {% if to_field %}<input type="hidden" name="{{ to_field_var }}" value="{{ to_field }}" />{% endif %}


Traceback:

File "C:\Python27\lib\site-packages\django\core\handlers\base.py" in get_response
  174.                     response = self.process_exception_by_middleware(e, request)

File "C:\Python27\lib\site-packages\django\core\handlers\base.py" in get_response
  172.                     response = response.render()

File "C:\Python27\lib\site-packages\django\template\response.py" in render
  160.             self.content = self.rendered_content

File "C:\Python27\lib\site-packages\django\template\response.py" in rendered_content
  137.         content = template.render(context, self._request)

File "C:\Python27\lib\site-packages\django\template\backends\django.py" in render
  95.             return self.template.render(context)

File "C:\Python27\lib\site-packages\django\template\base.py" in render
  206.                     return self._render(context)

File "C:\Python27\lib\site-packages\django\template\base.py" in _render
  197.         return self.nodelist.render(context)

File "C:\Python27\lib\site-packages\django\template\base.py" in render
  992.                 bit = node.render_annotated(context)

File "C:\Python27\lib\site-packages\django\template\base.py" in render_annotated
  959.             return self.render(context)

File "C:\Python27\lib\site-packages\django\template\loader_tags.py" in render
  173.         return compiled_parent._render(context)

File "C:\Python27\lib\site-packages\django\template\base.py" in _render
  197.         return self.nodelist.render(context)

File "C:\Python27\lib\site-packages\django\template\base.py" in render
  992.                 bit = node.render_annotated(context)

File "C:\Python27\lib\site-packages\django\template\base.py" in render_annotated
  959.             return self.render(context)

File "C:\Python27\lib\site-packages\django\template\loader_tags.py" in render
  173.         return compiled_parent._render(context)

File "C:\Python27\lib\site-packages\django\template\base.py" in _render
  197.         return self.nodelist.render(context)

File "C:\Python27\lib\site-packages\django\template\base.py" in render
  992.                 bit = node.render_annotated(context)

File "C:\Python27\lib\site-packages\django\template\base.py" in render_annotated
  959.             return self.render(context)

File "C:\Python27\lib\site-packages\django\template\loader_tags.py" in render
  69.                 result = block.nodelist.render(context)

File "C:\Python27\lib\site-packages\django\template\base.py" in render
  992.                 bit = node.render_annotated(context)

File "C:\Python27\lib\site-packages\django\template\base.py" in render_annotated
  959.             return self.render(context)

File "C:\Python27\lib\site-packages\django\template\loader_tags.py" in render
  69.                 result = block.nodelist.render(context)

File "C:\Python27\lib\site-packages\django\template\base.py" in render
  992.                 bit = node.render_annotated(context)

File "C:\Python27\lib\site-packages\django\template\base.py" in render_annotated
  959.             return self.render(context)

File "C:\Python27\lib\site-packages\django\template\defaulttags.py" in render
  220.                     nodelist.append(node.render_annotated(context))

File "C:\Python27\lib\site-packages\django\template\base.py" in render_annotated
  959.             return self.render(context)

File "C:\Python27\lib\site-packages\django\template\loader_tags.py" in render
  209.                 return template.render(context)

File "C:\Python27\lib\site-packages\django\template\base.py" in render
  208.                 return self._render(context)

File "C:\Python27\lib\site-packages\django\template\base.py" in _render
  197.         return self.nodelist.render(context)

File "C:\Python27\lib\site-packages\django\template\base.py" in render
  992.                 bit = node.render_annotated(context)

File "C:\Python27\lib\site-packages\django\template\base.py" in render_annotated
  959.             return self.render(context)

File "C:\Python27\lib\site-packages\django\template\defaulttags.py" in render
  220.                     nodelist.append(node.render_annotated(context))

File "C:\Python27\lib\site-packages\django\template\base.py" in render_annotated
  959.             return self.render(context)

File "C:\Python27\lib\site-packages\django\template\defaulttags.py" in render
  220.                     nodelist.append(node.render_annotated(context))

File "C:\Python27\lib\site-packages\django\template\base.py" in render_annotated
  959.             return self.render(context)

File "C:\Python27\lib\site-packages\django\template\defaulttags.py" in render
  326.                 return nodelist.render(context)

File "C:\Python27\lib\site-packages\django\template\base.py" in render
  992.                 bit = node.render_annotated(context)

File "C:\Python27\lib\site-packages\django\template\base.py" in render_annotated
  959.             return self.render(context)

File "C:\Python27\lib\site-packages\django\template\defaulttags.py" in render
  326.                 return nodelist.render(context)

File "C:\Python27\lib\site-packages\django\template\base.py" in render
  992.                 bit = node.render_annotated(context)

File "C:\Python27\lib\site-packages\django\template\base.py" in render_annotated
  959.             return self.render(context)

File "C:\Python27\lib\site-packages\django\template\base.py" in render
  1049.         return render_value_in_context(output, context)

File "C:\Python27\lib\site-packages\django\template\base.py" in render_value_in_context
  1026.     value = force_text(value)

File "C:\Python27\lib\site-packages\django\utils\encoding.py" in force_text
  78.                 s = six.text_type(s)

File "C:\Python27\lib\site-packages\django\utils\html.py" in <lambda>
  381.         klass.__unicode__ = lambda self: mark_safe(klass_unicode(self))

File "C:\Python27\lib\site-packages\django\forms\boundfield.py" in __str__
  43.         return self.as_widget()

File "C:\Python27\lib\site-packages\django\forms\boundfield.py" in as_widget
  101.         return force_text(widget.render(name, self.value(), attrs=attrs))

File "C:\Python27\lib\site-packages\django\contrib\admin\widgets.py" in render
  291.             'widget': self.widget.render(name, value, *args, **kwargs),

File "C:\Python27\lib\site-packages\django\forms\widgets.py" in render
  528.         options = self.render_options(choices, [value])

File "C:\Python27\lib\site-packages\django\forms\widgets.py" in render_options
  554.         for option_value, option_label in chain(self.choices, choices):

File "C:\Python27\lib\site-packages\django\forms\models.py" in __iter__
  1110.             yield self.choice(obj)

File "C:\Python27\lib\site-packages\django\forms\models.py" in choice
  1117.         return (self.field.prepare_value(obj), self.field.label_from_instance(obj))

File "C:\Python27\lib\site-packages\django\forms\models.py" in label_from_instance
  1180.         return smart_text(obj)

File "C:\Python27\lib\site-packages\django\utils\encoding.py" in smart_text
  42.     return force_text(s, encoding, strings_only, errors)

File "C:\Python27\lib\site-packages\django\utils\encoding.py" in force_text
  80.                 s = six.text_type(bytes(s), encoding, errors)

Exception Type: TypeError at /admin/login/authpermissionadd/add/
Exception Value: __str__ returned non-string (type NoneType)
环境:
请求方法:获取
请求URL:http://localhost:9090/admin/login/authpermissionadd/add/
Django版本:1.9.4
Python版本:2.7.11
已安装的应用程序:
['login',
“django.contrib.admin”,
“django.contrib.auth”,
“django.contrib.contenttypes”,
“django.contrib.sessions”,
“django.contrib.messages”,
“django.contrib.staticfiles”,
“角色权限”]
已安装的中间件:
['django.middleware.security.SecurityMiddleware',
“django.contrib.sessions.middleware.SessionMiddleware”,
'django.middleware.common.CommonMiddleware',
“django.middleware.csrf.CsrfViewMiddleware”,
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.xframeoptions中间件']
模板错误:
在模板C:\Python27\lib\site packages\django\contrib\admin\templates\admin\change\u form.html中,第33行出现错误
__str_uu返回非字符串(类型NoneType)23:{%endblock%}
24:{%endif%}
25 : 
26:{%block content%}
27:{%block object tools%}
28:{%if-change%}{%if-not是_-popup%}
29:
    30:{%block object tools items%} 31:
  • 32:{%url选择| admin_urlname:'history'original.pk | admin_urlquote作为history_url%} 33 : 34:
  • 35:{%if有绝对url%}
  • {%endif%} 36:{%endblock%} 37:
38:{%endif%}{%endif%} 39:{%endblock%} 40:{%csrf_令牌%}{%block form_top%}{%endblock%} 41 : 42:{%if是_popup%}{%endif%} 43:{%if to_field%}{%endif%} 回溯: get\U响应中的文件“C:\Python27\lib\site packages\django\core\handlers\base.py” 174.response=self.process\u异常\u由\u中间件(e,请求) get\U响应中的文件“C:\Python27\lib\site packages\django\core\handlers\base.py” 172.response=response.render() render中的文件“C:\Python27\lib\site packages\django\template\response.py” 160.self.content=self.rendered\u content 呈现内容中的文件“C:\Python27\lib\site packages\django\template\response.py” 137.content=template.render(上下文、自请求) render中的文件“C:\Python27\lib\site packages\django\template\backends\django.py” 95.返回self.template.render(上下文) render中的文件“C:\Python27\lib\site packages\django\template\base.py” 206.返回self.\u呈现(上下文) _render中的文件“C:\Python27\lib\site packages\django\template\base.py” 197.返回self.nodelist.render(上下文) render中的文件“C:\Python27\lib\site packages\django\template\base.py” 992.bit=node.render_注释(上下文) render_注释中的文件“C:\Python27\lib\site packages\django\template\base.py” 959.返回self.render(上下文) render中的文件“C:\Python27\lib\site packages\django\template\loader\u tags.py” 173.返回编译的\u父对象。\u呈现(上下文) _render中的文件“C:\Python27\lib\site packages\django\template\base.py” 197
from django.utils.encoding import python_2_unicode_compatible

@python_2_unicode_compatible
class eisfiles(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    ...

    def __str__(self):
        return unicode(self.address)  # use str() in Python 3