gpt4 book ai didi

django m2m 模型不同步

转载 作者:行者123 更新时间:2023-12-01 12:47:57 26 4
gpt4 key购买 nike

当我在新的 m2m 模型上运行 syncdb 时,出现错误:

错误:一个或多个模型未验证:services.service: 'categories' 通过model Service_Category 指定一个m2m关系,还没有安装

我尝试使用上列出的示例 https://docs.djangoproject.com/en/dev/topics/db/models/#extra-fields-on-many-to-many-relationships

当我同步时它工作正常。所以我在下面的模型中没有得到正确的结果。不太确定为什么我的模型不工作,如果它是一个简单的拼写错误或其他原因。注意:模型使用简单的 m2m 关系运行良好,但它不喜欢这种方式。谢谢

from django.db import models

# Create your models here.




class Category(models.Model):

name = models.CharField(max_length=50)
slug = models.SlugField(max_length=50, unique=True,
help_text='Unique value for product page URL, created from name.')
description = models.TextField()
is_active = models.BooleanField(default=True)
meta_keywords = models.CharField("Meta Keywords", max_length=255, blank = True, null = True,
help_text='Content for description meta tag')
meta_description = models.CharField(max_length = 255, blank = True, null = True,
help_text = 'Content for description meta tag')
created_at = models.DateTimeField(auto_now_add = True)
updated_at = models.DateTimeField(auto_now = True)

class Meta:
#app_label = ''
db_table = 'categories'
ordering = ['created_at']
verbose_name_plural = 'Categories'

def __unicode__(self):
return self.name

@models.permalink
def get_absolute_url(self):
return ('catalog_category', (), {'category_slug': self.slug})


class Service(models.Model):

name = models.CharField(max_length=255, unique = True)
slug = models.SlugField(max_length=255, unique = True,
help_text = 'Unique value for product page URL, created from name.')


old_price = models.DecimalField(max_digits=9, decimal_places=2,
blank = True, null = True, default = 0.0)
image = models.CharField(max_length=50, blank = True)
is_active = models.BooleanField(default = True)
is_bestseller = models.BooleanField(default = False)
is_featured = models.BooleanField(default = False)
description = models.TextField()
bullet1 = models.CharField(max_length=255, blank = True, null = True,
help_text = 'Option Bullet for description')
bullet2 = models.CharField(max_length=255, blank = True, null = True,
help_text = 'Option Bullet for description')
bullet3 = models.CharField(max_length=255, blank = True, null = True,
help_text = 'Option Bullet for description')
bullet4 = models.CharField(max_length=255, blank = True, null = True,
help_text = 'Option Bullet for description')
bullet5 = models.CharField(max_length=255, blank = True, null = True,
help_text = 'Option Bullet for description')
micro_current = models.BooleanField(default = False)

meta_keywords = models.CharField(max_length = 255,blank = True, null = True,
help_text = 'Comma Delimited Set of SEO keywords for meta tag')
meta_description = models.CharField(max_length = 255, blank = True, null = True,
help_text = 'Content for description meta tag')
created_at = models.DateTimeField(auto_now_add = True)
updated_at = models.DateTimeField(auto_now = True)


categories = models.ManyToManyField(Category, through='Service_Category')


class Meta:
#app_label = ''
db_table = 'services'
ordering = ['created_at']


def __unicode__(self):
return self.name


class Service_Category:

category = models.ForeignKey(Category)
service = models.ForeignKey(Service)
micro_current = models.BooleanField(default = False)


class Meta:
#app_label = ''
db_table = 'service_categories'

services.service: 'categories' 通过模型Service_Category 指定了一个m2m 关系,还没有安装

最佳答案

你没有正确定义你的中间模型

class Service_Category(models.Model):

category = models.ForeignKey(Category)
service = models.ForeignKey(Service)
micro_current = models.BooleanField(default = False)


class Meta:
#app_label = ''
db_table = 'service_categories'

我们必须继承我们从 models.Model 类定义的每个模型。休息一切似乎都很好。

关于django m2m 模型不同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14253460/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com