Je souhaite remplir deux champs de clés étrangères dans l'un de mes formulaires. Le bit correspondant du code est comme ci-dessous:Initialiser les listes déroulantes des clés étrangères
if request.method == 'POST':
form = IssuesForm(request.POST or None)
if request.method == 'POST' and form.is_valid():
form.save()
else:
form = IssuesForm(initial={'vehicle': stock_number, 'addedBy': request.user, })
vehicle
des points à la classe Vehicle
. addedBy
doit contenir l'utilisateur actuellement connecté.
Cependant, les listes déroulantes ne sont pas initialisées comme je veux ... Je dois encore sélectionner le véhicule et l'utilisateur. A partir de là, j'ai deux questions:
- Quel pourrait être le problème?
- Quelle est la meilleure façon de rendre ces formulaires en lecture seule?
EDIT 1 La présente jusqu'à la classe ressemble IssueForm
:
class Issues(models.Model):
vehicle = models.ForeignKey(Vehicle)
description = models.CharField('Issue Description', max_length=30,)
type = models.CharField(max_length=10, default='Other', choices=ISSUE_CHOICES)
status = models.CharField(max_length=12, default='Pending',
choices=ISSUE_STATUS_CHOICES)
priority = models.IntegerField(default='8', editable=False)
addedBy = models.ForeignKey(User, related_name='added_by')
assignedTo = models.CharField(max_length=30, default='Unassigned')
dateTimeAdded = models.DateTimeField('Added On', default=datetime.today,
editable=False)
def __unicode__(self):
return self.description
classe de forme
class IssuesForm(ModelForm):
class Meta:
model = Issues
exclude = ('assignedTo')
Pouvez-vous aussi montrer votre classe 'IssuesForm'? –
@ Ben J'ai ajouté la classe – Stephen
Vous devriez essayer de transmettre les données initiales pour l'un des autres champs, comme la description. S'il est rempli, j'imagine que le problème provient du passage dans le véhicule, contrairement à l'objet du véhicule lui-même. – Adam