🎉 سال نو، مهارت نو، مشاوره رایگان نقشه راه برنامه نویسی (آفر ویژه ثبت نام قبل از افزایش قیمت 🔥)
۰ ثانیه
۰ دقیقه
۰ ساعت
۴ mahdiyousefi
خطا در کد نوشتن مدل‌ها
جامعه پایتون (وب) ایجاد شده در ۰۱ دی ۱۴۰۱

من مدل را طبق استاد برنامه نوشتم الان python manage.py میخواهم اجرا کنم خطا می‌دهد و با کامنت کردن مدل مون python manage.pyاجرا میشه

attribute_type = models.PositiveSmallIntegerField(default=INTEGER,choices=ATTRIBUTE_TYPES_FIELDS)

این را خطا میده

class Product(models.Model):
    product_Type = models.ForeignKey(ProductType, on_delete=models.PROTECT, related_name='products_types')
    upc = models.BigIntegerField(unique=True)
    title = models.CharField(max_length=32)
    description = models.TextField(blank=True)
    Category = models.ForeignKey(Category, on_delete=models.PROTECT, related_name='products_cat')
    brand = models.ForeignKey(Category, on_delete=models.PROTECT, related_name='products_brand')
def __str__(self):
    return self.title
def __str__(self):
    return self.title
class ProductAttributeValue(models.Model):
    product = models.ForeignKey(Product, on_delete=models.CASCADE, related_name='attribute_values')
    value = models.CharField(max_length=48)
    attribute = models.ForeignKey(ProductAttribute, on_delete=models.PROTECT, related_name='values')
    def __str__(self):
        return f"{self.product}({self.attribute}):{self.value}"

این دو کلاس ام مشکل داره چون این‌ها را کامنت میکنم اجرا میشه

python manage.py

خطا در ترمینال چاپ میکنه

Traceback (most recent call last):
 File "/home/mahdiyousfi/Academy/venv/lib/python3.10/site-packages/django/db/models/fields/related.py", line 798, in __init__
  to._meta.model_name
AttributeError: 'ForeignKey' object has no attribute '_meta'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
 File "/home/mahdiyousfi/Academy/academy/manage.py", line 22, in 
  main()
 File "/home/mahdiyousfi/Academy/academy/manage.py", line 18, in main
  execute_from_command_line(sys.argv)
 File "/home/mahdiyousfi/Academy/venv/lib/python3.10/site-packages/django/core/management/__init__.py", line 419, in execute_from_command_line
  utility.execute()
 File "/home/mahdiyousfi/Academy/venv/lib/python3.10/site-packages/django/core/management/__init__.py", line 395, in execute
  django.setup()
 File "/home/mahdiyousfi/Academy/venv/lib/python3.10/site-packages/django/__init__.py", line 24, in setup
  apps.populate(settings.INSTALLED_APPS)
 File "/home/mahdiyousfi/Academy/venv/lib/python3.10/site-packages/django/apps/registry.py", line 114, in populate
  app_config.import_models()
 File "/home/mahdiyousfi/Academy/venv/lib/python3.10/site-packages/django/apps/config.py", line 301, in import_models
  self.models_module = import_module(models_module_name)
 File "/usr/lib/python3.10/importlib/__init__.py", line 126, in import_module
  return _bootstrap._gcd_import(name[level:], package, level)
 File "", line 1050, in _gcd_import
 File "", line 1027, in _find_and_load
 File "", line 1006, in _find_and_load_unlocked
 File "", line 688, in _load_unlocked
 File "", line 883, in exec_module
 File "", line 241, in _call_with_frames_removed
 File "/home/mahdiyousfi/Academy/academy/catalogue/models.py", line 49, in 
  class Product(models.Model):
 File "/home/mahdiyousfi/Academy/academy/catalogue/models.py", line 56, in Product
  brand = models.ForeignKey(Category, on_delete=models.PROTECT, related_name='products_brand')
 File "/home/mahdiyousfi/Academy/venv/lib/python3.10/site-packages/django/db/models/fields/related.py", line 800, in __init__
  assert isinstance(to, str), (
AssertionError: ForeignKey() is invalid. First parameter to ForeignKey must be either a model, a model name, or the string 'self'

سلام مهدی عزیز امیدوارم حالت خوب باشه

یه فیدبک اول بهت بدم راجع به ارسال ارور به نظرم اگ تصویری از ارور اپلود کنی راحتتر هستش فهمش.

درباره سوال اینکه دقیق متوجه نشدم چرا این خطا رو داری میگیری. جایی فراخوانی نکردی کلید خارجی رو؟


Reza Mobaraki ۰۱ دی ۱۴۰۱، ۱۶:۲۶

سلام این خطا حل کردم

این کلاس وقتی مینویسیمپروداکت برام خطا میده مثل خود استاد کد زدم ولی خطا داره

# class Meta:
    # verbose_name = "ProductType"
    # verbose_name_Plural = "ProductTypes"


mahdiyousefi ۰۳ دی ۱۴۰۱، ۰۴:۱۵

چه خطایی میده؟

بهترین پاسخ
Reza Mobaraki ۰۳ دی ۱۴۰۱، ۱۶:۱۳

سلام خطا را برطرف کردم


mahdiyousefi ۰۳ دی ۱۴۰۱، ۱۷:۰۵