django多应用app的时候,在一个应用下的model模型中引用另一个应用下的model模型类

第一个app下的model

from django.contrib.auth.models import AbstractUser
from django.db import models

# Create your models here.
#用户表
class UserInfo(AbstractUser):
    telephone=models.CharField(max_length=11,verbose_name='手机号',null=True,help_text='11位电话号码')
    gender_choice=(
        (0,'女'),
        (1,'男')
    )
    gender=models.IntegerField(choices=gender_choice,verbose_name='性别',null=True,)
    introduction=models.CharField(max_length=100,verbose_name='个人简介',null=True,)
    icon=models.ImageField(verbose_name='头像',upload_to='img/',null=True,)
    class Meta:
        db_table = '用户表'
        verbose_name = '用户'
        verbose_name_plural = verbose_name

    def __str__(self):
        return self.username

第二个app下的model

from users.models import UserInfo
#用户专栏分类表
class Category(models.Model):
    name=models.CharField(max_length=10,help_text='最大字符10字符',verbose_name='专栏名',unique=False,null=True)
    user=models.ForeignKey(verbose_name='用户',to='UserInfo',related_name='category',on_delete=models.CASCADE)
    class Meta:
        db_table = '用户专栏表'
        verbose_name = '用户专栏'
        verbose_name_plural = verbose_name

    def __str__(self):
        return self.name

执行迁移的时候,报错
在这里插入图片描述
原因:

并没有真正的引用另一个app下的UserInfo模型类,因为如果在模型类的关系字段声明to=模型类名的时候,你加上引号,就表示在本model中的模型类,因此,这个时候我们应该把引号去掉,就可以迁移成功了。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,我可以为您提供一些指导。 首先,您需要安装并配置 Django 环境。可以参考 Django 官方文档进行安装和配置。 然后,您需要创建一个 Django 项目和应用程序。可以使用以下命令来创建 Django 项目: ``` django-admin startproject your_project_name ``` 接下来,您需要创建一个 Django 应用程序。可以使用以下命令来创建 Django 应用程序: ``` python manage.py startapp your_app_name ``` 接着,您需要设计并创建数据库模型。可以使用 Django模型来定义数据库模型。例如,您可以定义一个课程模型一个学习进度模型,如下所示: ```python from django.db import models class Course(models.Model): title = models.CharField(max_length=200) description = models.TextField() ... class Progress(models.Model): user = models.ForeignKey(User, on_delete=models.CASCADE) course = models.ForeignKey(Course, on_delete=models.CASCADE) completed = models.BooleanField(default=False) ... ``` 然后,您需要编写视图函数和模板来实现在线学习平台的功能。例如,您可以创建一个课程列表视图和一个学习进度视图,如下所示: ```python from django.shortcuts import render from .models import Course, Progress def course_list(request): courses = Course.objects.all() return render(request, 'course_list.html', {'courses': courses}) def progress_list(request): user = request.user progress = Progress.objects.filter(user=user) return render(request, 'progress_list.html', {'progress': progress}) ``` 最后,您需要将您的应用程序部署到服务器上。您可以使用一些云服务提供商,如 AWS 或 Heroku,来部署您的应用程序。 当然,以上只是一个简单的指导,具体实现过程可能会更加复杂和细节化。希望这些指导能够帮助到您。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值