qq_41994296 2019-11-22 11:19 采纳率: 0%
浏览 142

没有外键,如何配置xadmin

Django model中没有外键,搭建后台时如何配置xadmin

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-07-29 10:30
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    在使用XAdmin构建 Django 应用的后台管理系统时,如果没有外键字段,通常情况下需要创建一个自定义模型来实现关联关系。以下是一个简单的例子:

    首先,我们需要定义一个新的模型类(例如 CustomModel),这个模型将包含我们想要关联的数据。

    from django.db import models
    
    class CustomModel(models.Model):
        # 假设我们要和另一个表中的ID进行关联
        custom_field = models.CharField(max_length=100)
    

    然后,在你的应用的 models.py 文件中,我们可以导入上述定义的新模型,并将其添加到我们的主模型中。

    from django.contrib.auth.models import User
    from .models import CustomModel  # 这里是你的新模型路径
    
    class MainModel(models.Model):
        user = models.OneToOneField(User, on_delete=models.CASCADE)  # 设置外键关联
        custom_model = models.ManyToManyField(CustomModel)
    
    # 在这里你可以根据实际需求修改其他属性
    

    最后,你需要在 XAdmin 中设置这些模型之间的关联。这可以通过在 settings.py 文件中添加 xadmin 模块并指定要使用的模型来完成。

    INSTALLED_APPS = [
        # ...
        'django.contrib.admin',
        'your_app_name',
    ]
    
    MIDDLEWARE = [
        # ...
        'django.contrib.sessions.middleware.SessionMiddleware',
        'django.contrib.auth.middleware.AuthenticationMiddleware',
        'your_app_name.middleware.XAdminMiddleware',
    ]
    
    xadmin_middleware = [
        'django.contrib.sessions.middleware.SessionMiddleware',
        'django.middleware.locale.LocaleMiddleware',
        'your_app_name.middleware.XAdminMiddleware',
    ]
    

    这样,当你在 XAdmin 中导航到某个页面时,它会自动检测是否有相关的模型数据,并通过关联处理进行展示或操作。

    注意:这只是一个基本的例子,你可能需要根据实际情况调整模型、字段名以及关联方式等。此外,确保在生产环境中正确配置 locale 参数以支持跨语言显示。

    评论

报告相同问题?