Ho un modello di Django:Django risparmiare modello con utente anonimo
class Project(models.Model):
user = models.ForeignKey(User)
zipcode = models.CharField(max_length=5)
module = models.ForeignKey(Module)
Nel mio views.py:
def my_view(request):
...
project = Project.objects.create(
user=request.user,
product=product_instance,
...
)
project.save()
voglio essere in grado di salvare utente come un utente autenticato o un AnonymousUser
(che posso aggiornare in seguito). Tuttavia, se non sono collegato ottengo questo errore:
ValueError: Cannot assign "<django.utils.functional.SimpleLazyObject object at 0x1b498d0>": "Project.user" must be a "User" instance.
Immagino che Django non salverà la AnonymousUser
perché non è un utente come definito nel modello User
. Devo aggiungere l'utente anonimo al modello User
o mi manca qualcosa?
Qualsiasi assistenza molto apprezzata.
Ok, fantastico. Quindi, se eseguo 'user = request.user' su' AnonymousUser', il campo sarà vuoto e non verrà sollevata alcuna eccezione? –
Viene sollevata un'eccezione perché hai fornito dati inappropriati al campo. Esegui 'if request.user.is_authenticated(): project.user = request.user' –
Devo anche aggiungere' null-True', in quanto il campo non può essere 'null'? –