我正在创建一个应用程序,允许人们设置可能跨越多天的教学事件.这是我的一些代码:
楷模:
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部分.但是我对这一切都是新手所以如果你需要我发布更多代码我会的.
如果我有:
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)外键是否存在?
我正在创建模型类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'
有什么办法吗?
我是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) 我有以下型号:
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
我从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) 我正在尝试在表'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) 我的代码有什么问题,我得到以下错误:
无法确定相关操作的有效排序.由于外键约束,模型要求或存储生成的值,可能存在依赖关系
码:
食品类:
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
我试图将一个外键添加到我的排期表中,但是失败了,但是我真的不知道为什么。外键应引用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) 我有一个产品实体,每个产品都分配到一个类别,该类别是一个单独的类别实体,它与我的产品实体中的categoryId属性相连接.我索引了我需要的所有属性,如名称价格等,但我无法正确索引我的categoryId:
当它被索引时,我得到一个数组,但没有实际类别Id或该类别中关联的其他信息:
所以我的问题是,正确的方法是什么,以便我的产品分配的类别被正确索引?
谢谢
foreign-keys ×10
django ×4
mysql ×4
python ×3
symfony ×2
algolia ×1
associations ×1
c# ×1
code-first ×1
constraints ×1
database ×1
indexing ×1
keyerror ×1
many-to-many ×1
model ×1
php ×1
symfony-2.5 ×1