社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  问与答

Re:在定义models时,怎样利用一个全局变量来定义一个model名?

django • 10 年前 • 7336 次点击  

问题描述: 1.我在mysite/settings.py文件中定义了一个全局变量,定义方法如下: MODEL = ‘Student’ 2.然后在app/models.py中定义一个model,定义方法如下:

from mysite.settings import MODEL
class MODEL(models.Model):
   id_s = models.AutoField(primary_key=True)
   name_s = models.CharField(max_length=25)

3.执行完命令python manager.py shell之后,敲入以下内容,之后报错

>>> from app.models import Student

报错:

Traceback (most recent call last):
  File "<console>", line 1, in <module>
ImportError: cannot import name Student

请问有什么好点子?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/629
 
7336 次点击  
文章 [ 7 ]  |  最新文章 10 年前
django
Reply   •   1 楼
django    10 年前

@kinegratii 我先看看,有什么问题的话再问您,如果您有直接的例子,可以共享下,多谢了

kinegratii
Reply   •   2 楼
kinegratii    10 年前

参考Django1.5新引入的AUTH_USER_MODEL https://docs.djangoproject.com/en/dev/topics/auth/customizing/

django
Reply   •   3 楼
django    10 年前

@爱情的枪 非常感谢您及时的回复,那您有什么其它建设性的方法吗?

爱情的枪
Reply   •   4 楼
爱情的枪    10 年前

@django 好吧,现在才看清楚你的意图,你这种方法肯定是不行,类名怎么可能是字符串。

django
Reply   •   5 楼
django    10 年前

@爱情的枪 可以使用这种定义的方法,但如果要更改此表名的话,就需要更改好多地方,比如参照它的model里面的一字段id_p=models.ForeignKey(Student)也要随着修改,我想通过定义一个全局变量,只用修改全局变量就可以达到目的,简化修改的复杂度。请问你有什么好的解决办法?

爱情的枪
Reply   •   6 楼
爱情的枪    10 年前
from django.db import models

class Student(models.Model): 
    id_s = models.AutoField(primary_key=True) 
    name_s = models.CharField(max_length=25)
爱情的枪
Reply   •   7 楼
爱情的枪    10 年前

from django.db import models class Student(models.Model): id_s = models.AutoField(primary_key=True) name_s = models.CharField(max_length=25)