Как опустить существующую запись django modelformset?
Я пытаюсь продублировать форму и заставить ее отображать только два поля, используя modelformset. Когда я запускаю код, django возвращает все записи в моей базе данных и два пустых поля. Как мне опустить существующие записи и каждый раз возвращать только пустую форму.
#views
def create_player_view(request):
""""
allows users to name to
players competing vs one another
"""
PlayersFormSet = modelformset_factory(Players, fields=["playerName",], extra=2, form=PlayerForm)
if request.method == "POST":
form = PlayersFormSet(request.POST)
if form.is_valid():
message = ""
form.save()
else:
message = "Form could not be completed"
return render(request, "create_player.html", {"message":message})
else:
return render(request, "create_player.html",
{'form': PlayersFormSet()})
#model
class Players(models.Model):
playerName = models.CharField(max_length=10)
Проблема заключалась в том, что я применял фильтрацию queryset в неправильном месте. Я смог опустить ненужные строки, следуя документации
def create_player_view(request):
""""
allows users to name to
players competing vs one another
"""
PlayersFormSet = modelformset_factory(Players, fields=["playerName",], extra=2, form=PlayerForm)
if request.method == "POST":
form = PlayersFormSet(request.POST)
if form.is_valid():
message = ""
form.save()
else:
message = "Form could not be completed"
return render(request, "create_player.html", {"message":message})
#####SOLUTION BELOW filter as the form is rendered######
else:
***return render(request, "create_player.html",
{'form': PlayersFormSet(queryset=Players.objects.none())})***