简体   繁体   English

如果 model._meta.abstract:AttributeError:类型 object 'ProductObject' 没有属性 '_meta'

[英]if model._meta.abstract: AttributeError: type object 'ProductObject' has no attribute '_meta'

I want to add one of my models to the admin panel, but this error falls:我想将我的模型之一添加到管理面板,但出现此错误:

> Traceback (most recent call last):   File
> "C:\Users\smirn\AppData\Local\Programs\Python\Python38-32\lib\threading.py",
> line 932, in _bootstrap_inner
>     self.run()   File "C:\Users\smirn\AppData\Local\Programs\Python\Python38-32\lib\threading.py",
> line 870, in run
>     self._target(*self._args, **self._kwargs)   File "C:\Users\smirn\AppData\Local\Programs\Python\Python38-32\lib\site-packages\django\utils\autoreload.py",
> line 53, in wrapper
>     fn(*args, **kwargs)   File "C:\Users\smirn\AppData\Local\Programs\Python\Python38-32\lib\site-packages\django\core\management\commands\runserver.py",
> line 109, in inner_run
>     autoreload.raise_last_exception()   File "C:\Users\smirn\AppData\Local\Programs\Python\Python38-32\lib\site-packages\django\utils\autoreload.py",
> line 76, in raise_last_exception
>     raise _exception[1]   File "C:\Users\smirn\AppData\Local\Programs\Python\Python38-32\lib\site-packages\django\core\management\__init__.py",
> line 357, in execute
>     autoreload.check_errors(django.setup)()   File "C:\Users\smirn\AppData\Local\Programs\Python\Python38-32\lib\site-packages\django\utils\autoreload.py",
> line 53, in wrapper
>     fn(*args, **kwargs)   File "C:\Users\smirn\AppData\Local\Programs\Python\Python38-32\lib\site-packages\django\__init__.py",
> line 24, in setup
>     apps.populate(settings.INSTALLED_APPS)   File "C:\Users\smirn\AppData\Local\Programs\Python\Python38-32\lib\site-packages\django\apps\registry.py",
> line 122, in populate
>     app_config.ready()   File "C:\Users\smirn\AppData\Local\Programs\Python\Python38-32\lib\site-packages\django\contrib\admin\apps.py",
> line 24, in ready
>     self.module.autodiscover()   File "C:\Users\smirn\AppData\Local\Programs\Python\Python38-32\lib\site-packages\django\contrib\admin\__init__.py",
> line 26, in autodiscover
>     autodiscover_modules('admin', register_to=site)   File "C:\Users\smirn\AppData\Local\Programs\Python\Python38-32\lib\site-packages\django\utils\module_loading.py",
> line 47, in autodiscover_modules
>     import_module('%s.%s' % (app_config.name, module_to_search))   File
> "C:\Users\smirn\AppData\Local\Programs\Python\Python38-32\lib\importlib\__init__.py",
> line 127, in import_module
>     return _bootstrap._gcd_import(name[level:], package, level)   File "<frozen importlib._bootstrap>", line 1014, in _gcd_import   File
> "<frozen importlib._bootstrap>", line 991, in _find_and_load   File
> "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked 
> File "<frozen importlib._bootstrap>", line 671, in _load_unlocked  
> File "<frozen importlib._bootstrap_external>", line 783, in
> exec_module   File "<frozen importlib._bootstrap>", line 219, in
> _call_with_frames_removed   File "C:\Users\smirn\OneDrive\Desktop\SYZYGY\Coding\Python\Django\Megan\Fridge\admin.py",
> line 13, in <module>
>     admin.site.register([Product, Fridge, ProductObject])   File "C:\Users\smirn\AppData\Local\Programs\Python\Python38-32\lib\site-packages\django\contrib\admin\sites.py",
> line 104, in register
>     if model._meta.abstract: AttributeError: type object 'ProductObject' has no attribute '_meta'

models.py:模型.py:

from django.db import models as m
from django.conf import settings
import datetime

def mounth():
    now = datetime.datetime.now()
    return now + datetime.timedelta(days=20)

class Product(m.Model):
    product_name = m.CharField(max_length=200)
    product_calories = m.PositiveIntegerField(blank=True)

    def __str__(self):
        return self.product_name


class Fridge(m.Model):
    OPTIONS = (
        ("1", "BASIC"),
        ("2", "PRO"),
        ("3", "KING"),
    )

    fridge_owner = m.ForeignKey(settings.AUTH_USER_MODEL, on_delete=m.CASCADE)
    fridge_mode = m.CharField(max_length=5, choices=OPTIONS)


class Recipe(m.Model):
    recipe_name = m.CharField(max_length=200)
    recipe_products = m.ManyToManyField(Product)
    recipe_description = m.TextField()

    def __str__(self):
        return self.recipe_name


class ProductObject(): # Не знаю как сделать правильно. Вдруг это можно реализовать по другому
    product_obj_fridge = m.ForeignKey(Fridge, on_delete=m.CASCADE)
    product_obj_product = m.ManyToManyField(Product)
    product_shelf_life = m.DateField(default=mounth())
    product_count = m.PositiveIntegerField(default=1)

    class Meta:
        ordering = ('product_shelf_life', )

admin.py:管理员.py:

from django.contrib import admin
from .models import Product, Fridge, Recipe, ProductObject
from tinymce.widgets import TinyMCE
from django.db import models
# Register your models here.


class RecipeAdmin(admin.ModelAdmin):
    formfield_overrides = {
        models.TextField: {'widget': TinyMCE}
    }

admin.site.register([Product, Fridge, ProductObject])
admin.site.register(Recipe, RecipeAdmin)

If I remove the ProductObject in the registration in the admin panel, then there will be no error, but I do not understand this error at all.如果我在管理面板的注册中删除ProductObject,那么不会有错误,但我根本不明白这个错误。 It seems that everything should be correct, but for some reason not Please, help me!似乎一切都应该是正确的,但由于某种原因不是请帮帮我!

In model ProductObject you are missing m.Model in the definition.ProductObject中,您在定义中缺少m.Model

Without this the Meta field can not be constructed.没有这个, Meta字段就不能被构造。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Django - (Tagulous) AttributeError: type object 'Model' has no attribute '_meta' - Django - (Tagulous) AttributeError: type object 'Model' has no attribute '_meta' AttributeError:类型对象“ MyModel”没有属性“ _meta” - AttributeError: type object 'MyModel' has no attribute '_meta' AttributeError:类型 object 'StaffFilter' 没有属性 '_meta' - AttributeError: type object 'StaffFilter' has no attribute '_meta' Django AttributeError:“模型”对象没有属性“ _meta” - Django AttributeError: 'Model' object has no attribute '_meta' AttributeError: 类型对象“团队”没有属性“_meta” - AttributeError: type object 'Team' has no attribute '_meta' AttributeError: 类型对象“Project”没有属性“_meta” - AttributeError: type object 'Project' has no attribute '_meta' AttributeError:类型对象“ Product”没有属性“ _meta” - AttributeError: type object 'Product' has no attribute '_meta' model_to_dict: AttributeError: 'str' object 没有属性 '_meta' - model_to_dict: AttributeError: 'str' object has no attribute '_meta' Django: AttributeError: type object 'Position' 没有属性 '_meta' - Django : AttributeError: type object 'Position' has no attribute '_meta' AttributeError : &#39;NoneType&#39; 对象没有属性 &#39;_meta&#39; - AttributeError : 'NoneType' object has no attribute '_meta'
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM