我正在创建一个wagtail网站,该网站复制并添加了旧的django网站的功能:有一个类似博客的“动物列表”和“植物列表”页面,以及类似后动物的“动物详细信息”, “工厂详细信息”页面。它们通过简单的ManyToManyField共享一个通用的“需要”标签,因为动植物有一些相同的需求(例如水或干草)。需求标签显示在“需求页面”表上,该表具有“商店链接”之类的列。 最初的解决方案不像w中的自动完成标签字段那样平滑,所以我试图在w中重新创建相同的内容,但是我不知道如何将w的TaggableManager / TagItemBase链接到单独的模型,并使其具有类似“项目链接”。我也不知道每次添加不存在的标签时如何使w标签字段为用户弹出(这是旧的django实现,请参见下图)。
这是原始的Django模型。py
from django.db import models
from django.contrib.auth.models import User
class Animal(models.Model):
name = models.CharField(max_length=100)
picture = models.ImageField(upload_to='./media/pictures-animals/', null=True, blank=True, default=None)
description = models.TextField(max_length=10000)
adoption_reason = models.TextField(max_length=1000)
needs = models.ManyToManyField('Need', related_name='animals')
def __str__(self):
return f'{self.name}'
class Plant(models.Model):
species = models.CharField(max_length=100)
picture = models.ImageField(upload_to='./media/pictures-plants/', null=True, blank=True, default=None)
description = models.TextField(max_length=10000)
needs = models.ManyToManyField('Need', related_name='plants')
entry_date = models.DateTimeField(auto_now_add=True)
def __str__(self):
return f'{self.species}'
class Need(models.Model):
title = models.CharField(max_length=100)
link = models.URLField(max_length=1000, null=True, blank=True, default="None")
def __str__(self):
return f'{self.title}'
这就是我所说的“漂亮w场”的意思: In an answer to my previous, related question, I was told I should keep the wagtail "taggedItemBase" models separate since they both will just link to taggit.Tag,所以现在我很困惑。