标签: foreign-keys

使用Django,我如何将我的模型的ForeignKey添加到CreateView?

我正在创建一个应用程序,允许人们设置可能跨越多天的教学事件.这是我的一些代码:

楷模:

class Event(models.Model):
    event_name = models.CharField('Event Name', max_length=200)
    short_description = models.TextField('Short Description', max_length=140)

class EventDay(models.Model):
    event = models.ForeignKey(Event)
    day_name = models.CharField(max_length=30)
    start_time = models.DateTimeField('Starting Date and Time')
    end_time = models.DateTimeField('Estimate Ending Time')
Run Code Online (Sandbox Code Playgroud)

查看

from .models import Event, EventDay

class EventCreate(LoginRequiredMixin, CreateView):
    model = Event
    fields = ['event_name', 'short_description']
Run Code Online (Sandbox Code Playgroud)

在我添加活动的管理员中它完美运行,允许我根据需要添加多少天.但是,在管理员之外添加页面的事件只显示来自Event的字段,而不是EventDay.

我知道我的Views代码看起来有点空,只要与EventDay有关.但是,在发布之前,我尝试了许多不同的东西,我想到尝试获取像管理页面一样工作的字段.我只是遗漏了我在这里尝试过的烂摊子.我也在文档中找不到任何关于我出错的地方.

我没有包含我的模板/网址代码,因为我不认为这是问题所在.我可以再次添加事件,而不是EventDay部分.但是我对这一切都是新手所以如果你需要我发布更多代码我会的.

python django foreign-keys django-generic-views

1
推荐指数
1
解决办法
1951
查看次数

MySQL检查是否存在外键约束

如果我有:

create table order_items
( 
  orderid int unsigned not null references orders(orderid),
  isbn char(13) not null,
  quantity tinyint unsigned,

  primary key (orderid, isbn)

);
Run Code Online (Sandbox Code Playgroud)

如何检查orderid int unsigned not null references orders(orderid)外键是否存在?

mysql foreign-keys

1
推荐指数
1
解决办法
4318
查看次数

django模型与另一个模型的两个字段

我正在创建模型类Car,我希望在其中有两个引用一个外键.

class Car(models.Model):
     owner = models.ForeignKey(User)
     #and here I want to have owner email (which is already set in class User)
     email = owner.email
Run Code Online (Sandbox Code Playgroud)

但我不知道如何引用已经使用过的ForeignKey字段.我收到此错误:

AttributeError:类型对象'用户'没有属性'email'

有什么办法吗?

python django model foreign-keys

1
推荐指数
1
解决办法
2671
查看次数

Symfony2 ondelete设置Null

我是symfony2的新手,我开始了一个博客项目.该项目有两个实体,一个是posts(Noticia),另一个是comments(Comentario).我需要删除一个帖子,但我不能因为与评论的关系.

这是我的属性:

/**
 * @ORM\ManyToOne(targetEntity="Noticia", inversedBy="comentarios", onDelete="SET NULL")
 * @ORM\JoinColumn(name="noticia_id", referencedColumnName="id")
 */
private $noticia;
Run Code Online (Sandbox Code Playgroud)
/**
 * @ORM\OneToMany(targetEntity="Comentario", mappedBy="noticia")
 */
private $comentarios = array();
Run Code Online (Sandbox Code Playgroud)

我尝试放,onDelete="SET NULL"但是当我用doctrine更新我的数据库时:php app/console doctrine:schema:update --force我收到了这个错误:

The annotation @ORM\ManyToOne declared on property Noticia 
Bundle\Entity\Comentario\::$noticia does not have a property named "onDelete".
Avaible properties: targetEntity, cascade, fetch, inversedBy
Run Code Online (Sandbox Code Playgroud)

php constraints foreign-keys symfony symfony-2.5

1
推荐指数
1
解决办法
2204
查看次数

Django-REST中关系字段的KeyError

我有以下型号:

class ProductColor(models.Model):
    color_title = models.CharField(max_length=50)

class BasicProduct(models.Model):

    product_title = models.CharField(max_length=150)
    product_desc = models.TextField()
    product_price = models.FloatField(default=10.0)

    # Describes what colors are available for this product
    product_colors = models.ManyToManyField(ProductColor)

class BasicCartItem(models.Model):
    cart_product = models.ForeignKey(BasicProduct)
    cart_color = models.ForeignKey(ProductColor, blank=True, default=None, null=True)
Run Code Online (Sandbox Code Playgroud)

和我的ModelSerializer:

class CartSerializer(serializers.ModelSerializer):
    class Meta:
        model = models.BasicCartItem
Run Code Online (Sandbox Code Playgroud)

我正在给出我的观点:

{'cart_product': 1}
Run Code Online (Sandbox Code Playgroud)

然后运行代码:

    m = CartSerializer(data=inputdata)
    if m.is_valid():
        items = m.data # Generates KeyError: u'cart_color'
Run Code Online (Sandbox Code Playgroud)

stacktrace的摘录:

  File "python2.7/site-packages/rest_framework/serializers.py", line 430, in to_representation
    attribute = field.get_attribute(instance)
  File "python2.7/site-packages/rest_framework/relations.py", line 103, in get_attribute …
Run Code Online (Sandbox Code Playgroud)

django many-to-many foreign-keys django-rest-framework keyerror

1
推荐指数
1
解决办法
1219
查看次数

Django查询不会将id值作为整数返回

我从db表文章中提取主键并尝试将其作为外键保存到db表注释中.我收到错误: int()参数必须是字符串或数字,而不是'QuerySet'

我已经尝试将article_id作为一个int(article_id)但是它返回相同的错误.我已经尝试将值拉入列表但随后返回列表错误.我打印了查询article_id的值,并[{'id': 1L}]在终端中返回,这是db中的第一篇文章.

这种插入外键的方法在更新记录时起作用,但现在不是在创建记录时.如何插入外键?

我正在使用Python 2.7和django 1.9

if request.POST.get("ComentForm") is not None:       
    if InsertComent.is_valid():

        article_id = Article.objects.filter(title = Slug).filter(pub_date = aTimestamp).values("id")
        article_id = article_id
        user_id = request.user.id

        p=Comment(comment=InsertComent.cleaned_data['comment'], article_id=article_id, user_id=user_id)
        p.save()

        messages.add_message(request, messages.SUCCESS,
                            "Thanks for commenting!", extra_tags="ComentForm"                                    
                            )
        return HttpResponseRedirect(reverse('Article',  kwargs={'aTimestamp':aTimestamp,'aSlug':aSlug}))
Run Code Online (Sandbox Code Playgroud)

python mysql django foreign-keys

1
推荐指数
1
解决办法
1720
查看次数

添加多个外键会出错

我正在尝试在表'routes1'上添加多个外键但它仍然给我一个错误Cannot add foreign key constraint,我错过了一些代码吗?提前致谢.这是代码片段

CREATE TABLE `routes1` (
  `Airline` varchar(3) default NULL,
  `Airline_ID` int(11) default NULL,
  `Source_Airport` varchar(4) default NULL,
  `Source_Airport_ID` varchar(5) default NULL,
  `Destination_Airport` varchar(4) default NULL,
  `Destination_Airport_ID` varchar(4) default NULL,
  `CodeShare` char(1),
  `Stops` int(1),
  `Equipment` text,
 FOREIGN KEY(Airline_ID) REFERENCES airlines(Airline_ID)
  ON DELETE CASCADE ON UPDATE CASCADE,
 FOREIGN KEY(Source_Airport_ID) REFERENCES airports(Airport_ID)
  ON DELETE CASCADE ON UPDATE CASCADE
 );
Run Code Online (Sandbox Code Playgroud)

这是"airport"引用表的create table脚本

CREATE TABLE `airports` (
  `Airport_ID` int(5),
  `Name` text,
  `City` text,
  `Country` text,
  `IATA/FAA`text default NULL,
 `ICAO` …
Run Code Online (Sandbox Code Playgroud)

mysql foreign-keys

1
推荐指数
1
解决办法
136
查看次数

实体框架:首先是代码中的外键

我的代码有什么问题,我得到以下错误:

无法确定相关操作的有效排序.由于外键约束,模型要求或存储生成的值,可能存在依赖关系

码:

食品类:

public class Food
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public short Id { get; set; }

    //some Property
    public string Name { get; set; }

    public virtual ICollection<Person> Persons { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

班级人员:

public class Person
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; }

    //some Property
    public string FirstName { get; set; }

    [ForeignKey("BestFoodId")]
    public Food BestFood { get; set; }
    public short BestFoodId { get; set; }

    public virtual ICollection<Food> FavoriteFoods { get; set; …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework foreign-keys code-first entity-framework-6

1
推荐指数
1
解决办法
685
查看次数

MySQL错误1822:添加外键约束失败;存在约束BUT索引的缺失索引

我试图将一个外键添加到我的排期表中,但是失败了,但是我真的不知道为什么。外键应引用tblAircraft表中的txtAC_tag属性,该属性是主键的一部分!因此,将tblAircraft编入索引(主键是由idAC和txtAC_tag组成的组合键->组合的主键可能是问题吗?),并且属性的数据类型匹配。

这是我的表声明和外键声明:

create table if not exists tblAircrafts(
idAC       int not null auto_increment,
txtAC_tag  varchar(255) not null,
txtAC_type varchar(255) not null,
primary key(idAC, txtAC_tag));

create table if not exists tblFlightSchedule(
ID int not null auto_increment,
datDate date,
txtFrom varchar(255),
txtTo   varchar(255),
txtFlight varchar(255),
numFlight_time_decimal decimal(4,2),
txtAC_tag varchar(255) not null,
txtAC_type varchar(255) not null,
numSeatCapacity int unsigned,
numLoad int unsigned, -- auslastung 
numDirt decimal(20,19),
numTotalFlightTime decimal(50,5),
numCumDirt decimal(20,15),
primary key(ID));

alter table tblflightschedule
add foreign key(txtAC_tag) references tblaircrafts(txtAC_tag);
Run Code Online (Sandbox Code Playgroud)

这是错误消息:

Error Code: …
Run Code Online (Sandbox Code Playgroud)

mysql database error-handling foreign-keys

1
推荐指数
1
解决办法
1万
查看次数

Symfony Algolia搜索引擎协会索引

我有一个产品实体,每个产品都分配到一个类别,该类别是一个单独的类别实体,它与我的产品实体中的categoryId属性相连接.我索引了我需要的所有属性,如名称价格等,但我无法正确索引我的categoryId:

在此输入图像描述 在此输入图像描述

当它被索引时,我得到一个数组,但没有实际类别Id或该类别中关联的其他信息:

在此输入图像描述

所以我的问题是,正确的方法是什么,以便我的产品分配的类别被正确索引?

谢谢

indexing foreign-keys associations symfony algolia

1
推荐指数
1
解决办法
139
查看次数