x0x*_*x0x 4 python django django-models django-admin
我已经检查了这个,但我需要在两个字段中连接内容好,这是问题所在.
我有两个型号,brand而product这看起来是这样的:
品牌模型
class Brand(models.Model):
name = models.CharField(max_length=29)
website = models.URLField()
def __unicode__(self):
return self.name
Run Code Online (Sandbox Code Playgroud)
产品型号
class Product(models.Model):
brand = models.ForeignKey(Brand)
name = models.CharField(max_length=140)
slug = models.SlugField()
def __unicode__(self):
return self.name
Run Code Online (Sandbox Code Playgroud)
管理方法
from .models import Product
@admin.register(Product)
class ProductAdmin(admin.ModelAdmin):
prepopulated_fields = {'slug': ('name',)}
Run Code Online (Sandbox Code Playgroud)
模型上的示例输入:
**Brand**
Name: Example
Website: http://www.example.com
**Product**
Brand: Example (Selection)
Name: Product
Slug: product(prepopulated)
Run Code Online (Sandbox Code Playgroud)
我希望slu to example-product比product.如何将品牌和名称连接成slug.
感谢您的任何帮助.
moo*_*uck 11
将品牌添加到prepopulated_fields字典只返回id而不是str/unicode值.
class ProductAdmin(admin.ModelAdmin):
prepopulated_fields = {'slug': ('brand', 'name',)}
Run Code Online (Sandbox Code Playgroud)
一种方法是添加save_model方法ModelAdmin
from django.utils.text import slugify
class ProductAdmin(admin.ModelAdmin):
def save_model(self, request, obj, form, change):
# don't overwrite manually set slug
if form.cleaned_data['slug'] == "":
obj.slug = slugify(form.cleaned_data['brand']) + "-" + slugify(form.cleaned_data['name'])
obj.save()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4154 次 |
| 最近记录: |