美文网首页
在Django-Admin/Django-Form中通过关联字段

在Django-Admin/Django-Form中通过关联字段

作者: mutang | 来源:发表于2024-03-05 18:33 被阅读0次

在Django-Admin和Django-Form中,可以通过关联字段进行ManyToMany过滤的解决方法如下:

  1. 首先,在你的models.py文件中定义两个相关的模型,其中一个模型有一个ManyToMany字段。例如:
from django.db import models

class Category(models.Model):
    name = models.CharField(max_length=100)

    def __str__(self):
        return self.name

class Product(models.Model):
    name = models.CharField(max_length=100)
    categories = models.ManyToManyField(Category)

    def __str__(self):
        return self.name

  1. 然后,在你的admin.py文件中注册这两个模型,并为ManyToMany字段添加过滤器。例如:
from django.contrib import admin
from .models import Category, Product

class ProductAdmin(admin.ModelAdmin):
    filter_horizontal = ('categories',)

admin.site.register(Category)
admin.site.register(Product, ProductAdmin)

在上面的例子中,我们使用filter_horizontal属性添加了一个水平过滤器,以便在Django-Admin中显示一个多选框,用于选择与产品相关的类别。

  1. 最后,在你的forms.py文件中,你可以使用ModelForm来创建一个表单,以便在Django-Form中进行ManyToMany过滤。例如:
from django import forms
from .models import Product

class ProductForm(forms.ModelForm):
    class Meta:
        model = Product
        fields = ('name', 'categories')
        widgets = {
            'categories': forms.CheckboxSelectMultiple
        }

在上面的例子中,我们使用CheckboxSelectMultiple小部件来显示一个多选框列表,以便在表单中选择与产品相关的类别。

这样,你就可以在Django-Admin和Django-Form中通过关联字段进行ManyToMany过滤了。

相关文章

  • django项目的配置步骤详解

    1. 配置django项目 (1) 在pycharm中打开通过django-admin startproject ...

  • Oracle千万级数据更新

    需求 有t1,t2两张表,通过A字段关联,现在需要在t1表新增字段B,将t2表中的字段C更新到t1表新增的字段B中...

  • mysql基础(2)

    外键 在students表中,通过class id的字段,可以把数据与另一张表(class)关联起来,这种列称为外...

  • 杂点总结

    1.在odoo中引用其他模型下的方法 通过关联字段连接到另外一个模型 2.hasattr(object, name...

  • Objective-C--关联对象(AssociateObjec

    关联对象的用途 在Category中为已经注册的类增加存储字段,模拟实例变量。 关联对象存储原理 所有的关联对象都...

  • Impala在kudu中创建含中文字段名的表

    方案:通过kudu的API创建含中文字段的表,然后在Impala中创建外部表进行关联。下面详细介绍该方案。 1、调...

  • Mongoose基于MongoDB建模并设置关联

    一、模型关联 1、一对多/多对多 在一中关联多中的字段,type为mongoose.Schema.Types.Ob...

  • 进一步使用MySQL

    首先昨天的外键,是一个字段关联一个字段。现在我们用两个字段关联两个字段。 select *和写字段的区别? 1、在...

  • sqlzoo练习9-join操作

    Join opetation指的是不同的表之间通过某个相同的字段进行关联,从而进行查询操作。 image 通过下面...

  • MyBatisPlus中关联查询时通用SQL中的include标

    问题 在MyBatisPlus中要使用到关联查询时,如果查询的主表字段不使用别名,会出现异常: 原因 列ID在字段...

网友评论

      本文标题:在Django-Admin/Django-Form中通过关联字段

      本文链接:https://www.haomeiwen.com/subject/xxpdzdtx.html