刷新数据的按钮

时间:2018-12-04 14:33:20

标签: python django forms

但是他直接返回了查科,我希望只有选择它才返回他

我将对其进行简化,以便我理解它,当人们选择使用“数据时间”添加和更新chekout的“ SIM”选项时,我需要在model.py中使用它,但我做不到

Model.py

SAIDA_CHOICES = (
    ('Não', 'Não Pago'),
    ('Sim', 'Pago')
)

class MovRotativo(models.Model):
    checkin = models.DateTimeField(auto_now=True, blank=False, null=False,)
    checkout = models.DateTimeField(auto_now=True, null=True, blank=True)
    email = models.EmailField(blank=False)
    placa = models.CharField(max_length=7, blank=False)
    modelo = models.CharField(max_length=15, blank=False)
    valor_hora = models.DecimalField(
        max_digits=5, decimal_places=2, null=False, blank=False)
    pago = models.CharField(max_length=15, choices=PAGO_CHOICES)
    chk = models.CharField(max_length=15, choices=SAIDA_CHOICES)

     def saida(self):
        if self.chk == 'sim':
            return self.chk
        else:
            self.checkout = models.DateTimeField(auto_now=True)
            return self.checkout

1 个答案:

答案 0 :(得分:1)

最简单的方法是将整个窗口实现为tk Frame的子类,然后销毁并重新创建它。您的代码可能看起来像这样:

import Tkinter as tk

class Example(tk.Frame):
    def __init__(self, parent):
        tk.Frame.__init__(self, parent)
        <other code here...>

class Application:
    def __init__(self):
        self.root = tk.Tk()
        self.frame = None
        refreshButton = tk.Button(self.root, text="refresh", command=self.refresh)
        self.refresh()

    def refresh(self):
        if self.frame is not None:
            self.frame.destroy()
        self.frame = Example(self.root)
        self.frame.grid(...)

尽管如此,将Frame继承为子类并没有什么真正的神奇之处。您只需要具有创建框架并将一堆小部件放入其中的功能。当您要刷新时,只需删除框架并再次调用您的函数即可。使用类要方便一些,但严格来说不是必须的。