【问题标题】:How to control whether an object is related to a model or not in Django?如何在 Django 中控制对象是否与模型相关?
【发布时间】:2020-10-29 13:03:28
【问题描述】:

有几个与用户模型相关的模型:

class User(AbstractUser):
  # Its fields

class Model_1(models.Model)
  user = models.OneToOneField('User', on_delete=models.CASCADE)
  # other fields

class Model_2(models.Model)
  user = models.OneToOneField('User', on_delete=models.CASCADE)
  # other fields

class Model_3(models.Model)
  user = models.OneToOneField('User', on_delete=models.CASCADE)
  # other fields

class Model_4(models.Model)
  user = models.OneToOneField('User', on_delete=models.CASCADE)
  # other fields

在视图中:

def index(request):
    # If the user is related to model one, do something
    # If the user is related to model two, do something
    # If the user is related to model three, do something
    # If the user is related to model four, do something
    # Otherwise return to the home page

用户向View发送请求后,如何判断它属于这些模型中的哪一个?
提前谢谢你。

【问题讨论】:

    标签: python-3.x django django-models django-views


    【解决方案1】:

    只需检查您的模型在用户实例中是否存在

    class Model_4(models.Model)
      user = models.OneToOneField('User',
                                  related_name='model_4',
                                  on_delete=models.CASCADE)
    
    def index(request):
        if request.user.model_4 is not None:
            pass  # Do something
    

    【讨论】:

    • 如果这引发了 AttributeError,您可以随时使用 hasattrgetattr
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-15
    • 1970-01-01
    • 1970-01-01
    • 2022-10-07
    • 1970-01-01
    • 2012-03-30
    • 1970-01-01
    相关资源
    最近更新 更多