2017-12-31 148 views
1

Ich versuche, eine benutzerdefinierte Anmeldeformular zu erstellen, für die i django eingebaute Benutzer model.I auch erweitert ist mit django-Postbote für Benutzer zu Benutzern messaging.Postman arbeitet ziemlich gut, bis ich eingebautes Benutzermodell verwendete, aber als ich das benutzerdefinierte Benutzermodell benutzte, fing es an, mir diesen Nachschlagefehler zu zeigen (nur beim Errichten von Nachrichten). Ich habe etwas Forschung getan, um dieses zu lösen, aber ist gescheitert.LookupError: App 'Konten' hat kein 'Benutzer' Modell --- "App '% s' hat kein '% s' Modell." % (Self.label, model_name))

der Zurückverfolgungsfehler

class MadeLookupChannel(LookupChannel): 
    File "C:\Users\vishw\Envs\Vishwesh2_env\lib\site-pack 
ages\ajax_select\registry.py", line 104, in MadeLookupC 
hannel 
    model = get_model(app_label, model_name) 
    File "C:\Users\vishw\Envs\Vishwesh2_env\lib\site-pack 
ages\ajax_select\registry.py", line 123, in get_model 
    return apps.get_model(app_label, model_name) 
    File "C:\Users\vishw\Envs\Vishwesh2_env\lib\site-pack 
ages\django\apps\registry.py", line 205, in get_model 
    return app_config.get_model(model_name, require_rea 
dy=require_ready) 
    File "C:\Users\vishw\Envs\Vishwesh2_env\lib\site-pack 
ages\django\apps\config.py", line 172, in get_model 
    "App '%s' doesn't have a '%s' model." % (self.label, model_name)) 
LookupError: App 'accounts' doesn't have a 'user' model 

aber ich auch dies, um in meiner settings.py Datei dieses

AUTH_USER_MODEL = 'accounts.Profile' 

zu lösen hinzugefügt haben, dann zeigt es diese Störung

File "C:\Users\vishw\OneDrive\Documents\Projects_2\si 
mple_social_clone\simplesocial\postman\apps.py", line 1 
3, in ready 
    setup() 
    File "C:\Users\vishw\OneDrive\Documents\Projects_2\si 
mple_social_clone\simplesocial\postman\models.py", line 
57, in setup 
    name_user_as = getattr(settings, 'POSTMAN_NAME_USER 
_AS', get_user_model().USERNAME_FIELD) 
AttributeError: type object 'Profile' has no attribute 
'USERNAME_FIELD' 

das ist meine accounts.models.py hier mein Profilmodell erweitert das eingebaute Benutzermodell

from django.contrib.auth.models import User 
from django.db import models 
from django.contrib import auth 
from django.utils import timezone 
from django.dispatch import receiver 
from django.db.models.signals import post_save 


class Profile(models.Model): 
    GENDER_CHOICES=(
    ('M','Male'), 
    ('F','Female'), 
    ('O','Other') 
    ) 
    BRANCH_CHOICES=(
    ('IT','Information Technology'), 
    ('COMP','Computer Science') 
    ) 
    QUAL_CHOICES=(
    ('BE','BE-Bachelor of Engineering'), 
    ('Btech','Btech-Bachelor of Technology'), 
    ('ME','ME-Master of Engineering'), 
    ('Mtech','Mtech-Master of Technology') 
    ) 
    user=models.OneToOneField(User,on_delete=models.CASCADE) 
    sex=models.CharField(max_length=5,choices=GENDER_CHOICES) 
    branch=models.CharField(max_length=5,choices=BRANCH_CHOICES) 
    mob=models.CharField(max_length=10) 
    highest_qual=models.CharField(max_length=15,choices=QUAL_CHOICES) 

    def __str__(self): 
     return self.user.username 

@receiver(post_save,sender=User) 
def update_user_profile(sender,instance,created,**kwargs): 
    if created: 
     Profile.objects.create(user=instance) 
    instance.profile.save() 

diese postman.models.py Datei schnappen wird, wo der Fehler

def setup(): 
    """ 
    Deferred actions, that can not be done at import time since Django 1.7. 
    Normally called in AppConfig.ready(). 
    For backwards compatibility, also called on first need. 

    """ 
    from django.contrib.auth import get_user_model 
    name_user_as = getattr(settings, 'POSTMAN_NAME_USER_AS', get_user_model().USERNAME_FIELD) 
    ORDER_BY_FIELDS.update({ 
     'f': 'sender__' + name_user_as,  # as 'from' 
     't': 'recipient__' + name_user_as, # as 'to' 
     's': 'subject', # as 'subject' 
     'd': 'sent_at', # as 'date' 
    }) 

bitte helfen Sie mir mit diesem vorkommendes wurde!

Antwort

1

Sie nicht haben ein benutzerdefiniertes Benutzermodell. Sie haben ein Profilmodell, das mit dem integrierten Benutzermodell verknüpft ist. Es ist nicht notwendig, AUTH_USER_MODEL zu setzen; Sie sollten diese Einstellung entfernen.

+0

Ok nach dem Entfernen, dass immer noch dieser Lookup-Fehler ist da ... – vishwesh

+0

bitte helfen Sie mir damit! – vishwesh

Verwandte Themen