use*_*069 1 python forms django django-models
我遇到了表单中的 slug 问题。我从模型创建了表单。
这是models.py
class hire_article(models.Model):
hiring = models.CharField(max_length=50)
slug = models.SlugField(max_length=200)
Run Code Online (Sandbox Code Playgroud)
这是表格
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__'
Run Code Online (Sandbox Code Playgroud)
这是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)
Run Code Online (Sandbox Code Playgroud)
它仅适用于 admin 。我希望它也能以表格形式工作。
在 models.py 中进行以下更改,并在 forms.py 前面的注释中建议更改
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)
Run Code Online (Sandbox Code Playgroud)
ps:也不建议您的模型命名约定。查看 PEP8 https://www.python.org/dev/peps/pep-0008/#class-names
归档时间: |
|
查看次数: |
2954 次 |
最近记录: |