Это моя django страница администрирования. Я собираюсь выбрать правила добавления или удаления в клиенте, затем нажимаю go, чтобы отобразить всплывающее окно tkinter на моей текущей странице, но на панели задач отображается значок, пока я ' м, кликнув на то только окно отображения
class ArticleAdmin(admin.ModelAdmin):
list_display = ['rule_id','item_typ', 'rule_desc']
actions = ['create_rule_client_relation', 'delete_rule_client_relation']
search_fields = ['item_typ']
def get_actions(self, request):
actions = super().get_actions(request)
if 'delete_selected' in actions:
del actions['delete_selected']
return actions
def create_rule_client_relation(self, request, queryset):
root = tk.Tk()
root.title("Hey Buddy")
mainframe = Frame(root)
mainframe.grid(column=0, row=0, sticky=(N, W, E, S))
mainframe.columnconfigure(0, weight=1)
mainframe.rowconfigure(0, weight=1)
mainframe.pack(pady=100, padx=100)
# tkvar = StringVar(root)
tkvar = StringVar(root)
client_list = client_informatn.objects.all().values_list('client_name',flat=True)
tkvar.set(client_list[0])
popupMenu = OptionMenu(mainframe, tkvar, *client_list)
Label(mainframe, text="Choose a client").grid(row=1, column=1)
popupMenu.grid(row=2, column=1)
def change_dropdown(*args):
global client_name
client_name = tkvar.get()
root.destroy()
button = Button(root, text="OK", command=change_dropdown)
button.pack()
root.mainloop()
client_id = client_informatn.objects.filter(client_name=client_name).values_list('client_id', flat=True)[0]
rows_updated = 0
row_already_found = 0
for rule_id in queryset.values_list('rule_id', flat=True):
if not crt_rule_client_relation.objects.filter(client_id=client_id, rule_id = rule_id).exists():
crt_rule_client_relation.objects.create(rule_id=rule_id, client_id=client_id)
rows_updated += 1
else:
row_already_found += 1
if rows_updated == 1:
message_bit = "1 rule was"
else:
message_bit = "%s rule were" % rows_updated
if row_already_found == 0:
self.message_user(request, "%s successfully added to the client." % message_bit)
else:
self.message_user(request, "{message_bit} successfully added to the client and {row_already_found} was already present".format(message_bit=message_bit,row_already_found=row_already_found))
def delete_rule_client_relation(self, request, queryset):
root = tk.Tk()
root.title("Hey Buddy!!!")
mainframe = Frame(root)
mainframe.grid(column=0, row=0, sticky=(N, W, E, S))
mainframe.columnconfigure(0, weight=1)
mainframe.rowconfigure(0, weight=1)
mainframe.pack(pady=100, padx=100)
tkvar = StringVar(root)
client_list = client_informatn.objects.all().values_list('client_name', flat=True)
tkvar.set(client_list[0])
popupMenu = OptionMenu(mainframe, tkvar, *client_list)
Label(mainframe, text="Choose a client").grid(row=1, column=1)
popupMenu.grid(row=2, column=1)
def change_dropdown(*args):
global client_name
client_name = tkvar.get()
root.destroy()
button = Button(root, text="OK", command=change_dropdown)
button.pack()
root.mainloop()
client_id = client_informatn.objects.filter(client_name=client_name).values_list('client_id', flat=True)[0]
rows_deleted = 0
row_not_found = 0
for rule_id in queryset.values_list('rule_id', flat=True):
if crt_rule_client_relation.objects.filter(client_id=client_id, rule_id=rule_id).exists():
crt_rule_client_relation.objects.filter(rule_id=rule_id, client_id=client_id).delete()
rows_deleted += 1
else:
row_not_found += 1
if rows_deleted <= 1:
message_bit = "%s rule was" % rows_deleted
else:
message_bit = "%s rule were" % rows_deleted
if row_not_found == 0:
self.message_user(
request, "%s successfully deleted from the client." % message_bit)
else:
self.message_user(request, "{message_bit} successfully deleted to the client and {row_not_found} was not present".format(
message_bit=message_bit, row_not_found=row_not_found))
create_rule_client_relation.short_description = "Add rules to the client"
delete_rule_client_relation.short_description = "Delete rules from the client"
admin.site.register(crt_rules_master, ArticleAdmin)