sql >> Databasteknik >  >> RDS >> Mysql

lagra främmande nyckel, inte från form POST-metoden, utan av formulärdata som jag redan har

Försök inte att tilldela int för payment.student .Tilldela student instans.

payment.student = student.get(pk=1) # Desired value `1` for foreign key assumed

Dessutom bör du följa regler för kodningsstil (läs om PEP8 ):

  • klassnamn som börjar med versaler
  • fältnamn börjar inte med versaler
  • variabler och fält använder inte kamelfall – klassnamn gör det

Din kod kommer att fungera utan dessa regler men som Python-utvecklare har vi några standarder för läsbar kod.

Och i Django behöver du inte definiera primärnyckelfältet - det skapas automatiskt och är tillgängligt med instance.pk .
Och jag är inte säker på om du verkligen vill att din främmande nyckel ska peka på student kolumn för student tabell.
Och du kan bara importera student modell om den är definierad i en annan modul.

Så med dessa korrigeringar bör din klassdefinition vara så här:

from other_app.models import Student

class Payment(models.Model):
    student = models.ForeignKey(Student)
    date_time = models.DateField(auto_now_add=True)
    amount_due = models.DecimalField(max_digits=5, decimal_places=2)

Nu har alla betalningsinstanser ett implicit fält pk som står för primärnyckel. Och slutligen en linje i din vy med stilkorrigeringar:

payment.student = Student.get(pk=1) # Desired value `1` for foreign key assumed
# payment is instance so all lowercase here
# Student on the right side is a class so started with capital



  1. Jag har en rad heltal, hur använder jag var och en i en mysql-fråga (i php)?

  2. Vagrant - fjärranslutning till mysql - extern vagrant ssh-anslutning

  3. MySQL Kombinera radvärden med kommatecken och mer

  4. Hur får man kvartal från datum i Oracle?