<p>将模型结构更改为:</p>
<pre><code>class Driver(models.Model):
name = models.CharField(max_length=200)
executable = models.CharField(max_length=200)
class Device(models.Model):
name = models.CharField(max_length=200)
bound_driver = models.ForeignKey(Driver, related_name="bound_to")
available_drivers = models.ManyToManyfield(Driver)
</code></pre>
<p>许多人会做同样的工作作为司机信号表。在</p>
<p><strong>您可以在Available drivers(可用驱动程序)字段中添加可用驱动程序。</strong></p>
<p><strong>但您也希望绑定的驱动程序是可用的驱动程序之一</strong>。您必须在表单中进行验证。为此你必须超越管理表格。查看链接</p>
<p>参考链接:</p>
<p><strong>多个字段</strong>:<a href="https://docs.djangoproject.com/en/1.6/ref/models/fields/#django.db.models.ManyToManyField" rel="nofollow">https://docs.djangoproject.com/en/1.6/ref/models/fields/#django.db.models.ManyToManyField</a></p>
<p><strong>模型管理(超越管理功能)</strong>:
<a href="https://docs.djangoproject.com/en/1.6/ref/contrib/admin/#modeladmin-objects" rel="nofollow">https://docs.djangoproject.com/en/1.6/ref/contrib/admin/#modeladmin-objects</a></p>
<p>如果你不想学到更多的东西,你必须花一些时间阅读和执行。:)</p>
<p><strong>或</strong></p>
<p>如果您想使用相同的结构,那么您就必须超越<code>ModelAdmin</code>中的<code>form</code>,请参见<a href="https://docs.djangoproject.com/en/1.6/ref/contrib/admin/#django.contrib.admin.ModelAdmin.form" rel="nofollow">here</a>并为您提供自定义表单,如下所示:</p>
^{pr2}$
<p><a href="https://docs.djangoproject.com/en/1.6/ref/contrib/admin/#django.contrib.admin.ModelAdmin.form" rel="nofollow">https://docs.djangoproject.com/en/1.6/ref/contrib/admin/#django.contrib.admin.ModelAdmin.form</a></p>