AttributeError: 'Manager' object has no attribute 'get_by_natural_key' error in Django?

后端 未结 1 810
太阳男子
太阳男子 2020-12-09 03:25

I am using Django \'1.5c1\'. I have this line in my settings.py:

AUTH_USER_MODEL = \'fileupload.galaxyuser\'

Here\'s my

相关标签:
1条回答
  • 2020-12-09 03:44

    You have created a new user model but you have not yet specified a manager for that model. If you're not yet familiar with managers in Django I suggest reading the documentation on that first. As the Django 1.5 say (source):

    You should also define a custom manager for your User model. If your User model defines username and email fields the same as Django's default User, you can just install Django's UserManager; however, if your User model defines different fields, you will need to define a custom manager that extends BaseUserManager providing two additional methods: create_user() and create_superuser().

    In short, if your model uses the same username and email fields as Django's User model then you can write:

    from django.contrib.auth.models import UserManager
    
    class GalaxyUser(models.Model):
        id = models.IntegerField(primary_key=True)
        create_time = models.DateTimeField(null=True, blank=True)
        update_time = models.DateTimeField(null=True, blank=True)
        email = models.CharField(max_length=765)
        password = models.CharField(max_length=120)
        external = models.IntegerField(null=True, blank=True)
        deleted = models.IntegerField(null=True, blank=True)
        purged = models.IntegerField(null=True, blank=True)
        username = models.CharField(max_length=765, blank=True)
        form_values_id = models.IntegerField(null=True, blank=True)
        disk_usage = models.DecimalField(null=True, max_digits=16, decimal_places=0, blank=True)
    
        objects = UserManager()
    
        class Meta:
            db_table = u'galaxy_user'
    

    Alternatively, you'll need to subclass BaseUserManager (also in django.contrib.auth.models) and implement the desired methods. Then, you'll need to assign it to the objects variable for your model.

    0 讨论(0)
提交回复
热议问题