Ich versuche, 100 Zeichen Formularbenutzer in einer "Microblog" -Minimalanwendung zu speichern. Mein Code scheint keine Mystakes zu haben, funktioniert aber nicht. Der Fehler ist in views.py, ich kann den Fremdschlüssel nicht in der Benutzertabelle speichern.Formularinhalt kann nicht in Datenbank gespeichert werden
models.py
sieht wie folgt aus:
class NewManager(models.Manager):
def create_post(self, post, username):
new = self.model(post=post, created_by=username)
new.save()
return new
class New(models.Model):
post = models.CharField(max_length=120)
date = models.DateTimeField(auto_now_add=True)
created_by = models.ForeignKey(User, blank=True)
objects = NewManager()
class NewForm(ModelForm):
class Meta:
model = New
fields = ['post']
# widgets = {'post': Textarea(attrs={'cols': 80, 'rows': 20})
def save_new(request):
if request.method == 'POST':
created_by = User.objects.get(created_by = user)
date = request.POST.get('date', '')
post = request.POST.get('post', '')
new_obj = New(post=post, date=date, created_by=created_by)
new_obj.save()
return HttpResponseRedirect('/')
else:
form = NewForm()
return render_to_response('news/new_form.html', {'form': form},context_instance=RequestContext(request))
ich nicht Importe hier erwähnt haben - sie sind richtig gemacht, sowieso. Mein Fehler ist in views.py. Wenn ich versuche, es zu retten, sagt:
lokale Variable ‚created_by‘ vor der Zuweisung verwiesen
Wenn ich created_py
als Parameter setzen, die sparen mehr Parameter benötigt. Es ist wirklich komisch.
Code um vier Leerzeichen einrücken (oder auswählen und Strg + K drücken). –
Ich bin verwirrt: 'created_by = User.objects.get (created_by = user)', bist du sicher, 'User' Modell hat' created_by' Spalte? Dies sollte jedoch mit 'FieldError' fehlschlagen. Auch eine vollständige Rückverfolgung wäre hilfreich. –