Я только начинаю приключение с Django. Я почти закончил свое первое очень маленькое приложение, но мне нужно решить одну маленькую проблему.
Я хотел бы знать, кто добавил новую запись в базу данных, и сохранить его логин.
Нет проблем, чтобы показать логин на сайте ... Проблема в том, что я не знаю, как получить логин пользователя, который добавил новую позицию, и сохранить его с новой записью.
Поскольку мое приложение не на английском языке sh Я подготовил его наименьшую версию:
мой models.py файл:
from django.db import models
from datetime import datetime
import socket
import getpass
from django.contrib.auth.models import User
class City(models.Model):
city = models.CharField(max_length=40)
description = models.CharField(max_length=200, null=True, blank=True)
def __str__(self):
return self.city
class Workers(models.Model):
hostname = socket.gethostname()
login_username = getpass.getuser()
user = User.username
name = models.CharField(max_length=200)
age = models.DecimalField(max_digits=3, decimal_places=0)
hobby = models.CharField(max_length=300)
city = models.ForeignKey(City, on_delete=models.CASCADE)
description = models.CharField(max_length=200, null=True, blank=True)
added_date = models.DateTimeField('added date', default=datetime.now())
computer = models.CharField(max_length=30, default=hostname)
computer_user = models.CharField(max_length=10, default=login_username)
logged_user = models.CharField(max_length=100, default='user') #<<== place for login user
def __str__(self):
return self.name
my views.py file:
from django.shortcuts import render, redirect
from .models import Workers
from .forms import WorkersForm
def all_records(request):
records = Workers.objects.all().order_by('id').reverse()
context = {
'records': records
}
return render(request, 'all.html', context)
def new_record(request):
form = WorkersForm(request.POST or None, request.FILES or None)
if form.is_valid():
form.save()
return redirect(all_records)
context = {
'form': form
}
return render(request, 'form.html', context)
my forms.py file :
from django.forms import ModelForm
from .models import Workers
class WorkersForm(ModelForm):
class Meta:
model = Workers
fields = ['name', 'age', 'hobby', 'city', 'description']
Большое спасибо за помощь и любые предложения
BR