Ich habe ein Django-Projekt, in dem ich eine Django-Rest-Auth verwenden, um Benutzer zu authentifizieren. Mein settings.py:Django-rest-auth mit Benutzerobjekt
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.sites',
'rest_framework',
#following was added to allow cross domain requests
'corsheaders',
#following were added for ssl thing
'djangosecure',
'sslserver',
#following were added for authentication
'rest_framework.authtoken',
'rest_auth',
'allauth',
'allauth.account',
'rest_auth.registration',
'demo',
)
Ich habe zwei Modelle: Übung und Rating. Ich habe kein Benutzer Modell erstellt, wie es von django-rest-auth/django.contrib.auth zur Verfügung gestellt werden muss. Ein Benutzer kann einer bestimmten Übung mehrere Bewertungen geben.
Mein models.py aussehen wie folgt:
class Exercise(models.Model):
#Field for storing exercise type
EXERCISE_TYPE_CHOICES = (
(1, 'Best stretch'),
(2, 'Butterfly reverse'),
(3, 'Squat row'),
(4, 'Plank'),
(5, 'Push up'),
(6, 'Side plank'),
(7, 'Squat'),
)
exercise_type = models.IntegerField(choices=EXERCISE_TYPE_CHOICES)
#Field for storing intensity level
INTENSITY_LEVEL_CHOICES = (
(1, 'Really simple'),
(2, 'Rather Simple'),
(3, 'Simple'),
(4, 'Okay'),
(5, 'Difficult'),
(6, 'Rather Difficult'),
(7, 'Really Difficult'),
)
intensity_level = models.IntegerField(choices=INTENSITY_LEVEL_CHOICES)
#Field for storing video url for a particular exercise
video_url = models.URLField()
#Field for storing description of the exercise
description = models.CharField(max_length=500)
class Rating(models.Model):
#Field for storing exercise type
exercise = models.ForeignKey(Exercise, related_name='ratings', blank=True, null=True)
#Field for storing rating
RATING_CHOICES = (
('H', 'Happy'),
('N', 'Neutral'),
('S', 'Sad'),
)
value = models.CharField(max_length=1,choices=RATING_CHOICES)
Nach der Beschreibung über meinem Bewertung Modell auch userid als Fremdschlüssel zusammen mit exerciseid direkt enthalten sollte?
Wie kann ich das erreichen? Wie kann ich mein Bewertungsmodell ändern? Was muss ich importieren?
verwandt Aber sollte es nicht Fremdschlüssel anstelle von oneTooneField sein? – Nitish
Entschuldigung. Mein Fehler. Ich habe Ihre Frage sehr schnell gelesen und dachte, dass Ihre Frage darin besteht, ein Feld hinzuzufügen, das dem Benutzer in Ihrem Modell entspricht. Ich werde die Antwort modifizieren. – voger