У меня есть DetailView, который использует FormMixin, который используется для рендеринга шаблона.
Из этого шаблона у меня есть две кнопки, которые используются для вызова некоторых всплывающих модальных окон.
В них модальные окна Я пытаюсь запустить запрос, который извлекает данные из модели, связанной с FormMixin, чтобы увидеть, что предыдущие пользователи ввели в качестве примечаний, а также все другие учетные записи, связанные с этой учетной записью через номер клиента.
Модели .py
class user_stats(models.Model):
User = models.ForeignKey(User, on_delete=models.PROTECT)
Action = models.CharField(max_length=100, choices=Action_Choices)
Outcome = models.CharField(max_length=100, choices=Outcome_Choices)
Notes = models.TextField()
Account_Number = models.DecimalField(max_digits=18, decimal_places=0, null=True)
action_time = models.DateTimeField(default=timezone.now)
def __str__(self):
return self.User
class Accountinforamtion(models.Model):
run_date = models.DateField(db_column='Run_Date', blank=True, null=True) # Field name made lowercase.
acct_num = models.DecimalField(db_column='ACCT_NUM', max_digits=18, decimal_places=0, blank=True, primary_key=True) # Field name made lowercase.
cust_num = models.DecimalField(db_column='CUST_NUM', max_digits=9, decimal_places=0, blank=True, null=True) # Field name made lowercase.
Views.py
class AccountDetailView(FormMixin, DetailView):
model = Accountinforamtion
context_object_name = 'profile'
form_class = UserInputForm
template_name = 'Home/detail.html'
def get_success_url(self):
return reverse('home')
def get_object(self):
try:
my_object = Accountinforamtion.objects.get(acct_num=self.kwargs.get('pk'))
return my_object
except self.model.DoesNotExist:
raise Http404("No MyModel matches give the query")
def get_context_data(self, *args, **kwargs):
context = super(AccountDetailView, self).get_context_data(*args, **kwargs)
profile = self.get_object()
#form
context['form'] = self.get_form()
context['profile'] = profile
return context
def post(self, request, *args, **kwargs):
self.object = self.get_object()
form = self.get_form()
if form.is_valid():
stat = form.save(False)
stat.User = request.user
stat.Account_Number = self.get_object().acct_num
#print(request.META.get("REMOTE_ADDR"))
#print(socket.gethostbyaddr(request.META.get("REMOTE_ADDR")))
stat.save()
return self.form_valid(form)
else:
return self.form_invalid(form)
def form_valid(self, form):
return super(AccountDetailView, self).form_valid(form)
def form_invalid(self, form):
return super(AccountDetailView, self).form_invalid(form)
class LinkedAccountModal(ListView):
model = user_stats
template_name = 'Home/LinkedAccountsModal.html'
def get_queryset(self):
try:
query = self.request.GET.get('q1')
object_list1 = user_stats.objects.filter(Q(acct_num=query)).first().cust_num
object_list2 = user_stats.objects.get(object_list1).acct_num
print('test')
return object_list2
except:
object_list2 = []
print('You Effed Up')
return object_list2
urls.py
urlpatterns = [
path('', views.home, name='home'),
path('search/', login_required(views.SearchResultView.as_view()), name='account-search'),
path('search/<int:pk>/', views.AccountDetailView.as_view(), name='account-detail'),
#path('user_input_form/', require_POST(views.MyFormView.as_view()), name='User_input_Form_View'),
path('search/modal/', views.LinkedAccountModal.as_view(), name='linked-account-modal'),
]
Модальная форма:
<form method = "get" action="{% url 'linked-account-modal' }">
<div class="card text-white bg-info mb-3" style="max-width: 16rem;">
<div class="card-header bg-info" style="text-align:center">Linked Accounts</div>
<div class="card-body" style="align-items: center; justify-content: center; text-align:center;">
<input value="{{ object.acct_num }}" name="q1" type="submit">
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#LinkedAccounts">
Click for Linked Accounts
</button>
</div>
</div>
</form>
Сама модальная форма:
<div class="modal fade" id="LinkedAccounts" tabindex="-1" role="dialog" aria-labelledby="LinkedAcountsModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="LinkedAcountsModalLabel">Linked Accounts</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<ul>
<li>{{ object_list2.acct_num }}</li>
</ul>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
Прилагаемая форма, содержащая кнопку, имеет тег, содержащий информацию, которую я хочу передать. Я попытался передать его в самой кнопке.
Когда я нажимаю на кнопки для генерации модальных окон, модальное окно появляется, но, похоже, оно не запускает / не отображает модальное представление связанной учетной записи.
В двух словах:
Требуется создать модальное окно, содержащее дополнительные сведения на основе информации, которую просматривает текущий пользователь. при нажатии модальной кнопки для этой учетной записи появится модальное окно с примечаниями et c.