Je suis nouveau python et Django et aux prises avec la question suivante:Comment puis-je obtenir le nom de l'utilisateur connecté à Django views.py
J'ai un utilisateur connecté qui complète un formulaire avec 2 champs (urlA et urlB). Ces 2 champs, ainsi que l'horodatage et le nom d'utilisateur de l'utilisateur doivent être stockés dans ma base de données PSQL.
Mon problème actuel est que les champs urlA et urlB sont poussés dans la base de données, mais le nom d'utilisateur reste vide ou j'obtiens une erreur que self n'est pas définie.
J'ai essayé des variations follwoing à l'intérieur views.py:
forwardform.user = request.user.username
User.objects.get(username=self.request.user) # -> gives error concering self
views.py
def forwardthis(request):
forwardform = AddUrlForm(request.POST or None)
if request.method == 'POST' and forwardform.is_valid():
forwardform.user = request.user.username
forwardform.save()
query_results = forwards.objects.all()
template = loader.get_template('forwardthis.html')
context = {
'forwardform': forwardform ,
'query_results':query_results
}
#output = ', '.join([p.user for p in query_results])
return HttpResponse(template.render(context,request))
models.py
class forwards(models.Model):
user = models.CharField(max_length = 150)
urlA = models.CharField(max_length = 254)
urlB = models.CharField(max_length = 254)
timestamp = models.DateTimeField('date created', auto_now_add=True)
forms.py
class AddUrlForm(forms.ModelForm):
class Meta:
model = forwards
# fields = '__all__'
exclude = ["user"]
'User.objects.get (nom d'utilisateur = request.user.username)' – Ykh