gpt4 book ai didi

python - 如何在 Django 中自定义 slug 字段?

转载 作者:太空狗 更新时间:2023-10-30 01:44:37 26 4
gpt4 key购买 nike

我检查过 this但我需要连接两个字段中的内容好的,问题来了。

我有两个模型,brandproduct,看起来像这样:

品牌模型

class Brand(models.Model):
name = models.CharField(max_length=29)
website = models.URLField()

def __unicode__(self):
return self.name

产品型号

class Product(models.Model):
brand = models.ForeignKey(Brand)
name = models.CharField(max_length=140)
slug = models.SlugField()

def __unicode__(self):
return self.name

管理方法

from .models import Product

@admin.register(Product)
class ProductAdmin(admin.ModelAdmin):
prepopulated_fields = {'slug': ('name',)}

模型输入示例:

**Brand**
Name: Example
Website: http://www.example.com

**Product**
Brand: Example (Selection)
Name: Product
Slug: product(prepopulated)

我希望 slug 是 example-product 而不是 product。如何将品牌和名称连接起来作为 slug。

感谢您的帮助。

最佳答案

将品牌添加到 prepopulated_fields 字典仅返回 id 而不是 str/unicode 值。

class ProductAdmin(admin.ModelAdmin):
prepopulated_fields = {'slug': ('brand', 'name',)}

一种方法是添加 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()

关于python - 如何在 Django 中自定义 slug 字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30169018/

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