Ich versuche, eine Linkertabelle für eine viele zu viele Beziehung zwischen diesen beiden Tabellen zu erstellen. Die dritte Tabelle enthält die cand_id
aus der ersten Tabelle und die p_id
aus der zweiten Tabelle. Hier ist mein Code im Kandidaten und P_user classes
in Modellen und den Tabellen von MariaDB. Wenn ich die ManyToManyField-Option in meinem Candidate-Modell verwende, zieht es immer den Vornamen der Benutzer statt ihrer p_id
.Django - ManyToMany Tabelle zieht die falsche Info
Erstes Modell:
class P_user(models.Model):
''' Proxy database model to extend Django User with profile data.'''
user = models.ForeignKey(User)
p_id = models.CharField(primary_key = True)
phone = models.CharField(max_length = 20,
default = '',
blank = True)
password = models.CharField(max_length = 30,
default = '',
blank = True)
confirm_password = models.CharField(max_length = 30,
default = '',
blank = True)
roles = models.CharField(max_length = 30,
default = '',
blank = True)
Zweites Modell:
class Candidate(models.Model)
....
associated_hm = models.ManyToManyField(P_user,
blank = True)
....
DB Darstellung:
MariaDB [mantis]> describe prog_port_candidate;
+------------------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------------------+--------------+------+-----+---------+----------------+
| cand_id | int(11) | NO | PRI | NULL | auto_increment |
| first_name | varchar(20) | NO | | NULL | |
| last_name | varchar(20) | NO | | NULL | |
+------------------------+--------------+------+-----+---------+----------------+
Next one:
MariaDB [mantis]> describe prog_port_p_user;
+------------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------------+-------------+------+-----+---------+-------+
| p_id | varchar(8) | NO | PRI | NULL | |
| phone | varchar(20) | NO | | NULL | |
| password | varchar(30) | NO | | NULL | |
| confirm_password | varchar(30) | NO | | NULL | |
| roles | varchar(30) | NO | | NULL | |
| user_id | int(11) | NO | MUL | NULL | |
+------------------+-------------+------+-----+---------+-------+
Bitte korrigieren Sie die Formatierung Ihrer Frage. – khajvah
Und erklären Sie, was Sie mit "es zieht den Vornamen der Benutzer anstelle ihrer p_id ziehen." Wo macht es das? Welchen Code läufst du, um dieses Ergebnis zu erhalten? Genau was siehst du? –
Ich kopiere Ihren Code eingefügt, kann aber das Problem nicht reproduzieren: / – allcaps