If Bedingung in Django

Django, Flask, Bottle, WSGI, CGI…
Antworten
alpi
User
Beiträge: 8
Registriert: Mittwoch 18. Mai 2022, 06:04

Guten Morgen liebes Community,
ich bräuchte mal eure Hilfe. Es geht um ein kleines Projekt, bei dem ich versuche, dass nach dem sich ein User angemeldet hat, zwei Felder hat zur Auswahl hat, bei Feld Nummer eins muss der User seinen Studiengang auswählen und im Feld Nummer zwei eine bestimmte Kategorie. Meine Frage nun ist, wie kann ich den Code so schreiben, dass wenn der User zum Beispiel als Studiengang "Informatik" ausgewählt hat, dass er dann nur noch bestimmte Kategorien auswählen kann und wenn ein anderer User z.B. IT wählt wiederum andere Kategorien auswählen kann.

Mein Code:
models.py
class Members(models.Model): # den klassennamen noch ändern
created_at = models.DateField(default=date.today, null=True)
vorname = models.CharField(max_length=200, null=True)
nachname = models.CharField(max_length=200, null=True)
Studiengang = (("IT & Technik","IT & Technik") ,("Designs & Medie", "Designs & Medie"),
("Personal & Recht","Personal & Recht"), ("Informatik","Informatik"))
studiengang = models.CharField(max_length=200, null=True, choices=Studiengang)
Kategorien = (
("Mathematik Grundlagen I", "Mathematik Grundlagen I"),
("Betriebswirtschaftslehre", "Betriebswirtschaftslehre"),
("Grundlagen der industriellen Softwaretechnik", "Grundlagen der industriellen Softwaretechnik"),
("Digital skills", "Digital skills")
)
kategorien = models.CharField(max_length=200, null=True, choices=Kategorien)
email = models.CharField(max_length=200, null=True)
passwort = models.CharField(max_length=200, null=True)

def __str__(self):
return self.vorname

forms.py

from django.forms import ModelForm
from .models import *
from django.contrib.auth.forms import UserCreationForm
from django import forms
from django.contrib.auth.models import User



class MembersForm(ModelForm):
class Meta:
model = Members

fields = ["studiengang", "kategorien"]



class CreateUserForm(UserCreationForm):
class Meta:
model = User
fields = ['username', 'email', 'password1', 'password2']

haupt.html

{% extends 'accounds/../main.html' %}
{% load static%}
{% block content %}
<style>
.hello-msg{
font-size: 18px;
color: #fff;
margin-right: 20px;
}
</style>
<p>Wllkommen bei QuizUI, {{ cunrrent_user }}</p>
<form action='' method='POST'>
{%csrf_token%}
{{ form }}


<input type="submit" class="like" value="Start Quiz!" />

<span class="hello-msg"> <a href="{% url 'logoutUser' %}">Logout</a> </span>

</form>

{% endblock%}


Ich muss glaube ich nicht erwähnen, dass ich ein Anfänger bin, bitte seit gnädig mit mir. Ich bin euch auch dankbar, das es euch gibt und ihr euch die Zeit nimmt, um Anfänger wie mir, zu helfen!
paddie
User
Beiträge: 101
Registriert: Donnerstag 11. Oktober 2018, 18:09

Um sowas zu realisieren brauchst du JavaScript. Du kannst dir aber auch mal https://htmx.org/ angucken. Damit lässt sich sowas auch bauen. Im Hintergrund nutzt das auch JavaScript..
Benutzeravatar
noisefloor
User
Beiträge: 3858
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

das geht auch ohne JavaScript, allerdings umständlicher. Du müsstest erst ein Template schicken, wo nur der Studiengang ausgewählt wird, das Formular absenden und dann ein Formular senden, wo die Nummern auswählbar sind. Also mehr Round-Trips über den Server.

JavaScript wäre hier wohl der bessere Weg.

Gruß, noisefloor
Antworten