How do i omit existing record django modelformset?
I am attempting to duplicate a form and have it show just two fields using a modelformset. When I go to run the code django returns all the records in my data base and the requested two empty fields. How do I omit the existing records and only return an empty form every time.
#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)
The issue was I was applying queryset filtering in the wrong place. I was able to omit the unwanted lines following the docs
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())})***