要保存 Django Model Form 并在选择外键对象后刷新页面,可以使用以下解决方法:
# models.py
from django.db import models
class ForeignKeyModel(models.Model):
name = models.CharField(max_length=100)
class MainModel(models.Model):
foreign_key = models.ForeignKey(ForeignKeyModel, on_delete=models.CASCADE)
# other fields
# forms.py
from django import forms
from .models import MainModel
class MainModelForm(forms.ModelForm):
class Meta:
model = MainModel
fields = '__all__'
# views.py
from django.shortcuts import render, redirect
from .forms import MainModelForm
def main_model_view(request):
form = MainModelForm(request.POST or None)
if request.method == 'POST':
if form.is_valid():
form.save()
return redirect('main_model_view') # Redirect to the same page
return render(request, 'template.html', {'form': form})
# urls.py
from django.urls import path
from .views import main_model_view
urlpatterns = [
path('main_model/', main_model_view, name='main_model_view'),
# other urls
]
这样,当选择外键对象后,表单会提交并在选择外键对象后刷新页面。