Для моего веб-приложения у меня есть два приложения, одно из которых morse_logs , основное приложение; во-вторых, это приложение users , которое в основном обрабатывает сведения о пользователях и аутентификацию, и т. д. c.
В настоящее время в моем приложении users у меня есть UserProfile модель, которая имеет одну переменную описание , и сейчас я пытаюсь добавить еще одну переменную оценка для пользователя, чтобы у каждого пользователя была одна переменная счета / поле для хранения их результатов, и результат пользователя будет обновляться после определенных действий в morse_logs game1. html и morse_logs / views.py (основное приложение).
Я действительно не знаком с моделированием и созданием таблиц, столбцов и тому подобного ...
И когда я выполняю миграции, это выдает мне ошибку, такую как Operaional Error: таблица "users_userscore" уже существует ...
Я попытался удалить файлы py миграции, но это не сработало
весь мой код находится на github: https://github.com/phl6/morse_log
Итак, мой вопрос: как мне отредактировать файл модели, чтобы у меня была переменная / поле оценки для каждого пользователя, которую можно обновить в morse_logs (основное приложение).
users / model.py
from django.db import models
from django import forms
from django.contrib.auth.models import User
from django.db.models.signals import post_save
# Create your models here.
class UserProfile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE, primary_key=True)
description = models.CharField(max_length=100, default='')
#score = models.CharField(User, max_length=10, default=0)
def create_profile(sender, **kwargs):
if kwargs['created']:
user_profile = UserProfile.objects.create(user=kwargs['instance'])
post_save.connect(create_profile, sender=User)
class UserScore(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
score = models.IntegerField(default=0, unique=True, null=False, db_index=True)
date_added = models.DateTimeField(auto_now_add=True)
def __str__(self):
"""Returns a string representation of the model"""
return self.score
morse_logs / views.py
@login_required()
def game1(request):
if request.user and not request.user.is_anonymous:
user = request.user
#else:
#Throw some raised exception here as the user is not valid...
"""The Game 1 page"""
val1 = request.GET.get('ans1', '')
res = "Incorrect"
user_score = UserScore.objects.get_or_create(user=user)
if val1 == 2:
#user's score declared in model increase 5points
#display correct and 5 points added to user
res = "Correct"
user_score.score += 5
user_score.save()
else:
#user's score declared in model has no point
#display incorrect and 0 point added to user
res = "Incorrect"
return render(request, 'morse_logs/game1.html', {'result': res})