【问题标题】:How do I auto generate slug using Django models如何使用 Django 模型自动生成 slug
【发布时间】:2015-06-26 13:47:13
【问题描述】:

我对表单中的 slug 有疑问。 我从模型创建了表单。

这里是 models.py

class hire_article(models.Model):
hiring = models.CharField(max_length=50)
slug = models.SlugField(max_length=200)

这是表格

from django import forms
from django.forms import ModelForm, Textarea
from django.utils.translation import ugettext_lazy as _
import datetime
from .models import hire_article
from django.template.defaultfilters import slugify
from django.db import models
from django.contrib import admin

class postform(ModelForm):

    # class hire_articleAdmin(admin.ModelAdmin):
    #     prepopulated_fields = {"slug": ("hiring",)}
    class Meta:
        # more_infomation = MyFormField(max_length=200, required=False,
        #                    help_text="Use puns liberally")
        model = hire_article
        # exclude = ['slug']
        fields = '__all__'

这是 admin.py

 from django.contrib import admin
    from .models import category, hire_article, localwork, salary,         mode_work, exp_year, degree, sex, language

class hire_articleAdmin(admin.ModelAdmin):
    prepopulated_fields = {"slug": ("hiring",)}
    list_display = ('id', 'hiring', 'publication_date', 'namecompany', )
    admin.site.register(hire_article, hire_articleAdmin)

它仅适用于 admin 。我也希望它在表单中工作。

【问题讨论】:

  • 究竟是什么错误?
  • 错误是表单中的 slug 字段不起作用。
  • 注释字段 = 'all' 和取消注释 exclude = ['slug']
  • 我试过但在127.0.0.1:8000/admin slug 不是自动添加^^

标签: python django forms django-models


【解决方案1】:

在您的 models.py 中进行以下更改,并在之前的 forms.py 中的 cmets 中建议更改

from django.template.defaultfilters import slugify

class hire_article(models.Model):
    hiring = models.CharField(max_length=50)
    slug = models.SlugField(max_length=200)

    def save(self, *args, **kwargs):
        self.slug = slugify(self.hiring)
        super(hire_article, self).save(*args, **kwargs)

ps:也不推荐你的模型命名约定。看 PEP8 https://www.python.org/dev/peps/pep-0008/#class-names

【讨论】:

  • 你有Skype或Facebook吗?我真的很想和你交朋友。
  • 上面写着 ::“投票需要 15 声望”
  • #Chirdeep Tomar 请帮帮我。
猜你喜欢
  • 2018-10-30
  • 2017-07-13
  • 1970-01-01
  • 1970-01-01
  • 2011-04-13
  • 2021-01-23
  • 2018-12-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多