2015-10-14 53 views
1

在我的模型类我加入元类有关详细细节,但运行 蟒蛇manage.py makemigrations它显示错误后 我的模型类是Django的模型无效元语法

从django.db进口车型

# Create your models here. 
class Category(models.Model): 
    """Category model.""" 
    title = models.CharField(max_length=100) 
    slug = models.SlugField(_(unique=True) 

    class Meta: 
     verbose_name = 'category' 
     verbose_name_plural = 'categories' 
     db_table = 'blog_categories' 
     ordering = ('title',) 

    def __str__(self): 
     return u'%s' % self.title 

    @permalink 
    def get_absolute_url(self): 
     return ('blog_category_detail', None, {'slug': self.slug}) 


class Post(models.Model): 
    """Post model.""" 
    STATUS_CHOICES = (
     (1, 'Draft'), 
     (2, 'Public'), 
    ) 
    title = models.CharField(max_length=200) 
    slug = models.SlugField(unique_for_date='publish') 
    author = models.ForeignKey(User, blank=True, null=True) 
    body = models.TextField() 
    tease = models.TextField(blank=True, help_text=_('Concise text suggested. Does not appear in RSS feed.')) 
    status = models.IntegerField(choices=STATUS_CHOICES, default=2) 
    allow_comments = models.BooleanField(default=True) 
    publish = models.DateTimeField(default=datetime.datetime.now) 
    created = models.DateTimeField(auto_now_add=True) 
    modified = models.DateTimeField(auto_now=True) 
    categories = models.ManyToManyField(Category, blank=True) 
    tags = TagField() 
    objects = PublicManager() 

    class Meta: 
     verbose_name = 'post' 
     verbose_name_plural ='posts' 
     db_table = 'blog_posts' 
     ordering = ('-publish',) 
     get_latest_by = 'publish' 

    def __str__(self): 
     return u'%s' % self.title 

    @permalink 
    def get_absolute_url(self): 
     return ('blog_detail', None, { 
      'year': self.publish.year, 
      'month': self.publish.strftime('%b').lower(), 
      'day': self.publish.day, 
      'slug': self.slug 
     }) 

    def get_previous_post(self): 
     return self.get_previous_by_publish(status__gte=2) 

    def get_next_post(self): 
     return self.get_next_by_publish(status__gte=2) 


class BlogRoll(models.Model): 
    """Other blogs you follow.""" 
    name = models.CharField(max_length=100) 
    url = models.URLField() 
    sort_order = models.PositiveIntegerField(default=0) 

    class Meta: 
     ordering = ('sort_order', 'name',) 
     verbose_name = 'blog roll' 
     verbose_name_plural = 'blog roll' 

    def __str__(self): 
     return self.name 

    def get_absolute_url(self): 
     return self.url 

和错误之后:

Traceback (most recent call last): 
    File "manage.py", line 10, in <module> 
    execute_from_command_line(sys.argv) 
    File "/home/vivekpradhan/finalbasket/basket/lib/python3.4/site-packages/django/core/management/__init__.py", line 351, in execute_from_command_line 
    utility.execute() 
    File "/home/vivekpradhan/finalbasket/basket/lib/python3.4/site-packages/django/core/management/__init__.py", line 325, in execute 
    django.setup() 
    File "/home/vivekpradhan/finalbasket/basket/lib/python3.4/site-packages/django/__init__.py", line 18, in setup 
    apps.populate(settings.INSTALLED_APPS) 
    File "/home/vivekpradhan/finalbasket/basket/lib/python3.4/site-packages/django/apps/registry.py", line 108, in populate 
    app_config.import_models(all_models) 
    File "/home/vivekpradhan/finalbasket/basket/lib/python3.4/site-packages/django/apps/config.py", line 198, in import_models 
    self.models_module = import_module(models_module_name) 
    File "/home/vivekpradhan/finalbasket/basket/lib/python3.4/importlib/__init__.py", line 109, in import_module 
    return _bootstrap._gcd_import(name[level:], package, level) 
    File "<frozen importlib._bootstrap>", line 2254, in _gcd_import 
    File "<frozen importlib._bootstrap>", line 2237, in _find_and_load 
    File "<frozen importlib._bootstrap>", line 2226, in _find_and_load_unlocked 
    File "<frozen importlib._bootstrap>", line 1200, in _load_unlocked 
    File "<frozen importlib._bootstrap>", line 1129, in _exec 
    File "<frozen importlib._bootstrap>", line 1467, in exec_module 
    File "<frozen importlib._bootstrap>", line 1572, in get_code 
    File "<frozen importlib._bootstrap>", line 1532, in source_to_code 
    File "<frozen importlib._bootstrap>", line 321, in _call_with_frames_removed 
    File "/home/vivekpradhan/finalbasket/basket/blog/blogger/models.py", line 9 
    class Meta: 
     ^
SyntaxError: invalid syntax 
(basket)[email protected]:~/finalbasket/basket/blog$ python manage.py makemigrations 
Traceback (most recent call last): 
    File "manage.py", line 10, in <module> 
    execute_from_command_line(sys.argv) 
    File "/home/vivekpradhan/finalbasket/basket/lib/python3.4/site-packages/django/core/management/__init__.py", line 351, in execute_from_command_line 
    utility.execute() 
    File "/home/vivekpradhan/finalbasket/basket/lib/python3.4/site-packages/django/core/management/__init__.py", line 325, in execute 
    django.setup() 
    File "/home/vivekpradhan/finalbasket/basket/lib/python3.4/site-packages/django/__init__.py", line 18, in setup 
    apps.populate(settings.INSTALLED_APPS) 
    File "/home/vivekpradhan/finalbasket/basket/lib/python3.4/site-packages/django/apps/registry.py", line 108, in populate 
    app_config.import_models(all_models) 
    File "/home/vivekpradhan/finalbasket/basket/lib/python3.4/site-packages/django/apps/config.py", line 198, in import_models 
    self.models_module = import_module(models_module_name) 
    File "/home/vivekpradhan/finalbasket/basket/lib/python3.4/importlib/__init__.py", line 109, in import_module 
    return _bootstrap._gcd_import(name[level:], package, level) 
    File "<frozen importlib._bootstrap>", line 2254, in _gcd_import 
    File "<frozen importlib._bootstrap>", line 2237, in _find_and_load 
    File "<frozen importlib._bootstrap>", line 2226, in _find_and_load_unlocked 
    File "<frozen importlib._bootstrap>", line 1200, in _load_unlocked 
    File "<frozen importlib._bootstrap>", line 1129, in _exec 
    File "<frozen importlib._bootstrap>", line 1467, in exec_module 
    File "<frozen importlib._bootstrap>", line 1572, in get_code 
    File "<frozen importlib._bootstrap>", line 1532, in source_to_code 
    File "<frozen importlib._bootstrap>", line 321, in _call_with_frames_removed 
    File "/home/vivekpradhan/finalbasket/basket/blog/blogger/models.py", line 9 
    class Meta: 
     ^
SyntaxError: invalid syntax 

回答

0
you lost a ")" at slug = models.SlugField(_(unique=True) 
0

在你问这样的事情之前,你应该先试试你的代码。