但是他直接返回了查科,我希望只有选择它才返回他
我将对其进行简化,以便我理解它,当人们选择使用“数据时间”添加和更新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
答案 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继承为子类并没有什么真正的神奇之处。您只需要具有创建框架并将一堆小部件放入其中的功能。当您要刷新时,只需删除框架并再次调用您的函数即可。使用类要方便一些,但严格来说不是必须的。