我正在从头开始开发一个计费和会计应用程序,其中我创建了两个不同的应用程序:
现在我有一个问题,我需要在以下情况下将它们联系起来:
我曾尝试在这些应用程序的模型中使用外键,但它看起来非常粗糙和糟糕。
我不确定我是否应该将所有模型放在相同的位置;我希望有见地的人对我的设计进行审查,以便我知道有哪些更好的方法可以做到这一点。
我正在尝试编写一个可以查找URL的C程序,并且可以使用它的新版本,它应该能够更新自己.
我试过的方法:
forkout一个新的进程下载新的二进制文件说BINARY.tmp,我用来forkout的代码是:
int
forkout_cmd(char *cmdstr) {
pid_t pid;
char *cmd[4];
cmd[0] = "/bin/bash";
cmd[1] = "-c";
cmd[2] = cmdstr;
cmd[3] = NULL;
pid = vfork();
if( pid == -1 ) {
logmsg("Forking for upgradation failed.");
return -1;
}else if( pid == 0 ){
/* we are in child process */
execvp(cmd[0], cmd);
logmsg("execl failed while executing upgradation job.");
}else{
/* need not to wait for the child to complete. */
wait(NULL);
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)新进程尝试覆盖原始BINARY
例如,您可能会考虑分叉的例程:
forkout_cmd("wget -O …Run Code Online (Sandbox Code Playgroud)我有多个字段的django模型,它被映射到MySQL数据库,现在模型中有一个日期时间字段,我想在其中设置分区.
该模型如下所示:
class Packet(models.Model):
device = models.ForeignKey(Device)
packet_time = models.DateTimeField(default=timezone.now())
# Location Details
signal = models.CharField(max_length=2, default='A')
lat = models.FloatField(default=None, null=True)
lat_indicator = models.CharField(max_length=1, default='')
lng = models.FloatField(default=None, null=True)
lng_indicator = models.CharField(max_length=1, default='')
address = models.CharField(max_length=64, default='NA')
speed = models.FloatField(default=None, null=True)
orientation = models.FloatField(default=None, null=True)
#House Keeping Items
dor = models.DateTimeField(default=timezone.now()) # <= Want to partition this for weekly basis.
dirty = models.BooleanField(default=False)
Run Code Online (Sandbox Code Playgroud)
请告诉我如何实现这一目标.
我只想列出 OneToOneField 中可用的项目,而不是所有项目,它不像在 ChoiceField 中过滤值,因为我们需要找出可以使用的值,这是基于是否已使用的原则。
我的模型定义如下:
class Foo(models.Model):
somefield = models.CharField(max_length=12)
class Bar(models.Model):
somefield = models.CharField(max_length=12)
foo = models.OneToOneField(Foo)
Run Code Online (Sandbox Code Playgroud)
现在我使用 ModelForm 创建基于 Bar 模型的表单,如下所示:
class BarForm(ModelForm):
class Meta:
model = Bar
Run Code Online (Sandbox Code Playgroud)
现在问题在于它使用 HTML 的选择小部件在 ChoiceField 中显示数据库中可用的所有 Foo 对象的列表,因为该字段是 OneToOneField django 将强制将 Bar 对象与 Foo 对象进行单一关联,但因为它显示列表中的所有可用和不可用项目很难找出表单中可接受的值,并且用户被迫使用点击/试用方法来找出正确的选项。
如何更改此行为并仅列出字段中可以使用的项目?