Ok, I was able to solve two problems with the help of Copilot.
forms.py:
from django import forms
from .models import Problem
class ProblemForm(forms.ModelForm):
class Meta:
model = Problem
fields = ['responsibility', 'summary', 'description', 'user']
widgets = {
'responsibility': forms.HiddenInput(),
'user': forms.HiddenInput(),
}
def __init__(self, *args, **kwargs):
responsibility = kwargs.pop('responsibility', None)
super(ProblemForm, self).__init__(*args, **kwargs)
if responsibility:
self.fields['responsibility'].initial = responsibility
views.py:
def problem_create(request, id):
related_instance = get_object_or_404(Responsibility, id=id)
redirect_url = '/responsibility-details/' + str(id) + '/'
if request.method == 'POST':
problem_form = ProblemForm(request.POST, responsibility=related_instance.id)
if problem_form.is_valid():
problem_form.save()
return HttpResponseRedirect(redirect_url)
else:
problem_form = ProblemForm(responsibility=related_instance.id)
context = {'problem_form': problem_form}
return render(request, 'systemcockpit/problem_form.html', context)
Now I just have to let the logged-in user automatically fill in the form, then everything fits.