小编Dav*_*idM的帖子

在管理页面中编辑M2M的两面

首先,我将列出我想要实现的目标,以防有不同的方式去做!

我希望能够使用任何多选接口编辑M2M关系的两面(最好是在管理页面上,尽管需要它可以在普通页面上).

问题显然来自反面,因为主要方面(定义关系的地方)在自动化方面效果很好.

我已经尝试了一些建议,以获得内联显示,但它不是一个非常好的界面.

我在django邮件列表上得到的建议是使用自定义的ModelForm.我已经得到一个多选框出现,但它似乎并没有"连接"任何东西,因为它不是从任何选择开始,也不保存所做的任何更改.

这是适当的代码片段:

#models.py
class Tag(models.Model):
    name = models.CharField(max_length=200)

class Project(models.Model):
    name = models.CharField(max_length=200)
    description = models.TextField()
    tags = models.ManyToManyField(Tag, related_name='projects')

#admin.py
class TagForm(ModelForm):
    fields = ('name', 'projects')
    projects = ModelMultipleChoiceField(Project.objects.all(), widget=SelectMultiple())
    class Meta:
        model = Tag

class TagAdmin(admin.ModelAdmin):
    fields = ('name', 'projects')
    form = TagForm
Run Code Online (Sandbox Code Playgroud)

任何帮助将非常感激,要么上面的代码工作或提供更好的方法来做到这一点!

DavidM

python django django-forms django-admin m2m

7
推荐指数
1
解决办法
438
查看次数

Django CharField To String

我正在Django中构建一个标记系统,并希望允许显示标记名称中的空格和其他字符,但过滤掉它们并在匹配名称时使用小写等.

为此,我在Tag模型中添加了一个字段,如下所示:

class Tag(models.Model):
    name = models.CharField(max_length=200, unique=True)
    matchname = re.sub("\W+" , "", name.lower())
Run Code Online (Sandbox Code Playgroud)

然而,我遇到了一个问题,CharField不是一个字符串,我不能为我的生活找到如何将其转换为一个!

django tostring django-models

4
推荐指数
1
解决办法
7476
查看次数