DJango i używanie bazy danych

0

Witam serdecznie, jestem w trakcie pisania projektu na którym użytkownik po zalogowaniu będzie mógł wykonać test i zobaczyć swoje wyniki. Oprócz tego administrator może dodać/usunąć pytania, zmieniać odpowiedzi i zobaczyć wyniki wszystkich uczniów. Problem w tym, że nie wiem jak najlepiej zaprogramować bazę danych, żeby można było dynamicznie zmieniać pytania i odpowiedzi. Próbowałem stworzyć dodatkową komórkę z wyborem odpowiedzi i tam przypisać do każdego wyboru użytkownika i pytanie na które odpowiada, ale nie potrafię tego zrobić. Męczę się z tym już któryś dzień a dokumentacja django w tym temacie nie jest zbyt pomocna.
Oto moje models.py:

from django.db import models
from django.contrib.auth.models import User
# Create your models here.
class Pytania(models.Model):
    tresc = models.CharField(max_length=150)
    status = models.CharField(default='inactive', max_length=20)
    tworca = models.ForeignKey(User, null=True, blank=False, default='kacper', on_delete=models.CASCADE)
    def __str__(self):
        return self.tresc

class Odpowiedzi(models.Model):
    pytanie = models.ForeignKey(Pytania, on_delete=models.CASCADE)
    tresc = models.TextField()
    prawda = models.BooleanField(default=False)
    def __str__(self):
        return self.tresc
class Uzytkownicy(models.Model):
    nazwa = models.CharField(max_length=30)
    haslo = models.CharField(max_length=30)
    def __str__(self):
        return self.nazwa

class WyborOdpowiedzi(models.Model):
   # uzytkownik = models.ForeignKey(Uzytkownicy, null=False, default=Uzytkownicy.get_latest_by, on_delete=models.CASCADE)
#    pytanie = models.ForeignKey(Pytania, null=False, default= , on_delete=models.CASCADE)
    Odpowiedz = models.CharField(null=True,max_length=50)



class Wyniki(models.Model):
    wynik=models.DecimalField(max_digits=5,decimal_places=2)
 #   uzytkownik = models.ForeignKey(Uzytkownicy, on_delete=models.CASCADE)




Chciałbym w jakiś sposób połączyć odpowiedzi na pytania i wyniki z użytkownikami i z pytaniami na które odpowiadają.
Druga sprawa to odpowiedzi, nie potrafię zrobić tak, żeby można było wybrać odpowiedź na przykład klikając przycisk albo coś w tym rodzaju, próbowałem używać do tego forms.py ale nie działało. Pomyślałem, że uczeń będzie na sztywno wpisywał informacje a później na samym końcu będę je porównywał z prawidłowymi odpowiedziami i na podstawie tego robił punktacje. Może ktoś ma jakiś lepszy pomysł to wklejam poniżej swoje forms.py:

from django import forms
from .models import *
from django.forms import ModelChoiceField
class Nazwa(forms.ModelForm):
    haslo = forms.CharField(widget=forms.PasswordInput)
    class Meta:
        model = Uzytkownicy
        fields = [
            'nazwa',
            'haslo'
        ]
#
class WyborOdpowiedziForm(forms.ModelForm):
      class Meta:
          model = WyborOdpowiedzi
          fields = ['Odpowiedz']

class Login(forms.ModelForm):
    haslo = forms.CharField(widget=forms.PasswordInput)
    class Meta:
        model = Uzytkownicy
        fields = [
            'nazwa',
            'haslo'
        ]

class Wyniki(forms.ModelForm):
    class Meta:
        model = Wyniki
        fields = ['wynik']

Pozdrawiam

1

Dynamicznie zmieniac po stronie admin view ?

1 użytkowników online, w tym zalogowanych: 0, gości: 1